欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-29 20:57:20
如何学习Python爬虫,爬虫的难点其实并不在于爬虫本身。而是各种各样的反爬虫措施。下面以一个小案例分享一下,带你们领略一下python的魅力。 ......

如何学习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())