标签:app erro end src findall pil enum turn urllib
码云地址:https://gitee.com/nothingbigger/DouBantop250
所需编程语言:python
主要工作:代码补全及bug检查修改
部分代码:
1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 import sys 4 reload(sys) 5 sys.setdefaultencoding(‘utf8‘) 6 from bs4 import BeautifulSoup 7 import re 8 import urllib2 9 import xlwt 10 11 #得到页面全部内容 12 def askURL(url): 13 request = urllib2.Request(url)#发送请求 14 try: 15 response = urllib2.urlopen(request)#取得响应 16 html= response.read()#获取网页内容 17 #print html 18 except urllib2.URLError, e: 19 if hasattr(e,"code"): 20 print e.code 21 if hasattr(e,"reason"): 22 print e.reason 23 return html 24 25 #获取相关内容 26 def getData(baseurl): 27 findLink=re.compile(r‘<a href="(.*?)">‘)#找到影片详情链接 28 findImgSrc=re.compile(r‘<img.*src="(.*jpg)"‘,re.S)#找到影片图片 29 findTitle=re.compile(r‘<span class="title">(.*)</span>‘)#找到片名 30 #找到评分 31 findRating=re.compile(r‘<span class="rating_num" property="v:average">(.*)</span>‘) 32 #找到评价人数 33 findJudge=re.compile(r‘<span>(\d*)人评价</span>‘) 34 #找到概况 35 findInq=re.compile(r‘<span class="inq">(.*)</span>‘) 36 #找到影片相关内容:导演,主演,年份,地区,类别 37 findBd=re.compile(r‘<p class="">(.*?)</p>‘,re.S) 38 #去掉无关内容 39 remove=re.compile(r‘ |\n|</br>|\.*‘) 40 datalist=[] 41 for i in range(0,10): 42 url=baseurl+str(i*25) 43 html=askURL(url) 44 soup = BeautifulSoup(html) 45 for item in soup.find_all(‘div‘,class_=‘item‘):#找到每一个影片项 46 data=[] 47 item=str(item)#转换成字符串 48 #print item 49 link=re.findall(findLink,item)[0] 50 data.append(link)#添加详情链接 51 imgSrc=re.findall(findImgSrc,item)[0] 52 data.append(imgSrc)#添加图片链接 53 titles=re.findall(findTitle,item) 54 #片名可能只有一个中文名,没有外国名 55 if(len(titles)==2): 56 ctitle=titles[0] 57 data.append(ctitle)#添加中文片名 58 otitle=titles[1].replace(" / ","")#去掉无关符号 59 data.append(otitle)#添加外国片名 60 else: 61 data.append(titles[0])#添加中文片名 62 data.append(‘ ‘)#留空 63 rating=re.findall(findRating,item)[0] 64 data.append(rating)#添加评分 65 judgeNum=re.findall(findJudge,item)[0] 66 data.append(judgeNum)#添加评论人数 67 inq=re.findall(findInq,item) 68 #可能没有概况 69 if len(inq)!=0: 70 inq=inq[0].replace("。","")#去掉句号 71 data.append(inq)#添加概况 72 else: 73 data.append(‘ ‘)#留空 74 bd=re.findall(findBd,item)[0] 75 bd=re.sub(remove,"",bd) 76 bd=re.sub(‘<br>‘," ",bd)#去掉<br> 77 bd=re.sub(‘/‘," ",bd)#替换/ 78 #data.append(bd) 79 words=bd.split(" ") 80 for s in words: 81 if len(s)!=0 and s!=‘ ‘:#去掉空白内容 82 data.append(s) 83 #主演有可能因为导演内容太长而没有 84 if(len(data)!=12): 85 data.insert(8,‘ ‘)#留空 86 datalist.append(data) 87 return datalist
标签:app erro end src findall pil enum turn urllib
原文地址:http://www.cnblogs.com/a1s2/p/7780103.html