首页 > 其他 > 详细

Requests+正则表达式爬取猫眼电影

时间:2019-03-25 13:01:27      阅读:98      评论:0      收藏:0      [点我收藏+]
爬取单页内容

利用requests请求目标站点,得到单个网页HTML代码,返回结果

正则表达式分析

根据HTML代码分析得到电影的名称、主演、上映时间、评分、图片链接等信息。

保存至文件

通过文件的形式将结果保存,每一部电影一个结果一行json字符串

开启循环及多进程

对多页内容遍历,开启多进程提高爬取速度。

 

附上代码:

技术分享图片
 1 import json
 2 from multiprocessing import Pool
 3 import requests
 4 from requests.exceptions import RequestException
 5 import re
 6 
 7 def get_one_page(url):
 8     try:
 9         response = requests.get(url)
10         if response.status_code == 200:
11             return response.text
12         return None
13     except RequestException:
14         return None
15 
16 def parse_one_page(html):
17     pattern = re.compile(r<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a
18                          +.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>
19                          +.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>,re.S)
20     items = re.findall(pattern,html)
21     for item in items:
22         yield{
23             index:item[0],
24             image:item[1],
25             title:item[2],
26             actor:item[3].strip()[3:],
27             time:item[4].strip()[5:],
28             score:item[5]+item[6]
29         }
30 
31 def write_to_file(content):
32     with open(result.txt,a,encoding=utf-8) as f:
33         f.write((json.dumps(content, ensure_ascii=False))+\n)
34         f.close()
35 
36 def main(offset):
37     url = https://maoyan.com/board/4?offset= + str(offset)
38     html = get_one_page(url)
39     # print(html)
40     for item in parse_one_page(html):
41         print(item)
42         write_to_file(item)
43 
44 if __name__ == __main__:
45     # for i in range(10):
46     #     main(i*10)
47     pool = Pool()
48     pool.map(main,[i*10 for i in range(10)])
spider.py

 

参考:

Python 3网络爬虫开发实战 ,崔庆才著 ,2018.04.pdf

Requests+正则表达式爬取猫眼电影

原文:https://www.cnblogs.com/YangARTuan/p/10592996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!