Python爬虫项目实战-爬取猫眼电影

如何学习Python爬虫,爬虫的难点其实并不在于爬虫本身。而是各种各样的反爬虫措施。下面以一个小案例分享一下,带你们领略一下python的魅力。

如何学习Python爬虫,爬虫的难点其实并不在于爬虫本身。而是各种各样的反爬虫措施。下面以一个小案例分享一下,带你们领略一下python的魅力。

如何学习Python爬虫,爬虫的难点其实并不在于爬虫本身。而是各种各样的反爬虫措施。下面以一个小案例分享一下,带你们领略一下python的魅力。

爬取《悲伤逆流成河》猫眼信息,项目源码分享:

 1 '''
 2 在学习过程中有什么不懂得可以加我的
 3 python学习交流扣扣qun,934109170
 4 群里有不错的学习教程、开发工具与电子书籍。
 5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。
 6 '''
 7 import requests
 8 from fake_useragent import UserAgent
 9 import json
10 import pymongo
11  
12 #保存到数据库
13 clien=pymongo.MongoClient(host='填写数据库IP')
14 db=clien.The_cat_s_eye_essay
15 coll=db.eye_essay
16  
17 #创建一个随机生成user-aengt的对象
18 ua=UserAgent()
19  
20 #提取我们要的短评
21 def parse_json(json):
22     if json:
23         items=json.get('cmts')
24         i=0
25         for item in items:
26             data={
27                 'ID':item.get('nickName'),
28                 '短评':item.get('content'),
29                 '评分':item.get('score'),
30                 '用户地点':item.get('cityName'),
31                 '评论时间':item.get('startTime'),
32                 '回复数':item.get('reply'),
33                 '性别':item.get('gender')
34             }
35             #coll.insert_one(data)
36       print(data)
37  
38  
39  
40  
41 def Crawl_JSON():
42     ua = UserAgent()
43     headers={
44         'User-Agent':ua.random,
45         'Host':'m.maoyan.com',
46         'Referer':'http://m.maoyan.com/movie/1217236/comments?_v_=yes'
47     }
48  
49     #猫眼电影短评接口
50     #因为猫眼的数据是AJAX类型的 里面的offset是改变的 第一次是0 第二次15 第三次是30 以此类推  这个page 相当于100/15然后循环
51     #可以自信观察猫眼AJAX数据请求参数 就会知道了
52     page=100
53     u=0
54     for i in range(page):
55         try:
56             offset=u
57             startTime = '2018-10-11'
58             comment_api = 'http://m.maoyan.com/mmdb/comments/movie/1217236.json?_v_=yes&offset={0}&startTime={1}%2021%3A09%3A31'.format(offset,startTime)
59             #发送get请求
60             response_coment=requests.get(url=comment_api,headers=headers)
61             json_comment=response_coment.text
62             json_comments=json.loads(json_comment)
63             parse_json(json_comments)
64             u+=15
65         except Exception as e:
66             print('出现错误:',e.args)
67  
68  
69  
70 parse_json(Crawl_JSON())

猜你喜欢

转载自www.cnblogs.com/xiaoyiq/p/11441467.html