import json
import requests
import requests.exceptions
import re
#返回单页的信息
def get_single_page(url):
response = requests.get(url)
try:
if(response.status_code ==200):
return response.text
return None
except requests.exceptions.HTTPError:
return None
#解析页面,用正则表达式获取想要的信息,这里注意的是,千万别用开发者模式查看网页的源码,源码可能和response.text不同
def parseHtml(html):
pattern= re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?data-act.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(\d+)</i>',re.S)
items= re.findall(pattern,html)
for item in items:
yield {
'index':item[0],
'image':item[1],
'title':item[2],
'actor':item[3].strip()[3:],
'time':item[4].strip()[5:],
'score':item[5]+item[6]
}
def writeIntoFile(item):
with open('result.txt','a') as f:
f.write(json.dumps(item)+'\n')
f.close()
def main(url):
html = get_single_page(url)
for item in parseHtml(html):
writeIntoFile(item)
print(item)
for i in range(10):
url = 'http://maoyan.com/board/4?offset='+str(i*10)
main(url)
用正则表达式+Requests爬取猫眼电影Top100
最新推荐文章于 2019-10-31 13:38:52 发布