第三课、《爬取电影信息》

1、准备工作

和上一次课的准备工作一致。

2、分析网页

1、打开网页

在这里插入图片描述

2、选取2019年的电影并分析其网页链接

2019年电影票房
第一页:http://movie.mtime.com/boxoffice/#CN/2019
第二页:http://movie.mtime.com/boxoffice/#CN/2019

最后一页:http://movie.mtime.com/boxoffice/#CN/2019
发现每一页的网页链接都是一样的,所以直接爬取网页的链接是不可取的,我们采取上次课的学习内容,用ajax抓包的方式来爬取链接

3、分析ajax包的链接

(1)查看ajax包是否内容正确

在这里插入图片描述
发现内容确实是我们所想要的内容

(2)分析ajax包的链接的规律

第一页:http://movie.mtime.com/boxoffice/?year=2019&area=china&type=MovieRankingYear&category=all&page=0&display=list&timestamp=1587174581492&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json
第二页:http://movie.mtime.com/boxoffice/?year=2019&area=china&type=MovieRankingYear&category=all&page=1&display=list&timestamp=1587174599209&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json

最后一页:http://movie.mtime.com/boxoffice/?year=2019&area=china&type=MovieRankingYear&category=all&page=9&display=list&timestamp=1587174613531&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json
发现链接之间有变化的为pagetimestamp两个部分

(3)用for循环爬取网页所有电影的ajax链接

for page in range(10):#为“for page in range(0101)”的简写
    print ("正在爬取%s页。。。。。"%(page+1))
    url = "http://movie.mtime.com/boxoffice/?year=2020&area=china&type=MovieRankingYear&category=all&page=%s&display=list&timestamp=1586758678446&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json"%page

3、抓取ajax包

1、检查网页

在这里插入图片描述

2、查询ajax的代理和请求方式

按照顺序点击,并查找
在这里插入图片描述

(1)代理方式

在这里插入图片描述

(2)字典

在这里插入图片描述

3、请求网页

(1)正常请求

import requests
url = "http://movie.mtime.com/boxoffice/?year=2019&area=china&type=MovieRankingYear&category=all&page=0&display=list&timestamp=1586758678446&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json"
headers = {
   
 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
requests.get(url= url)

运行结果为:
在这里插入图片描述
结果输出为521不是200,说明有错误。

(2)cookie值

上面的请求失误是因为网页有反爬虫,这里我们需要一个身份证明,就是“cookie”,将其放入代理中来伪装我们的身份,来跳过网页的反爬虫。

(3)cookie值的查询

与查找代理一样的步骤
在这里插入图片描述

(4)放入请求代码的headers中

import requests
url = "http://movie.mtime.com/boxoffice/?year=2019&area=china&type=MovieRankingYear&category=all&page=0&display=list&timestamp=1587175350317&version=07bb781100018dd58eafc3b35d42686804c6df8d&dataType=json"
headers = {
   
'Cookie':'_userCode_=2020418943319761; _userIdentity_=2020418943319882; userId=0; defaultCity=%25E5%258C%2597%25E4%25BA%25AC%257C290; _ydclearance=0727d3a1a8b8c2b43ce53545-898d-4121-b3ae-c28cad83fd56-1587181343; _tt_=1B6780C77FCA13619F3729D19CEA8D35; Hm_lvt_6dd1e3b818c756974fb222f0eae5512e=1587174213; Hm_lpvt_6dd1e3b818c756974fb222f0eae5512e=1587174213; __utma=221034756.2128731208.1587174213.1587174213.1587174213.1; __utmc=221034756; __utmz=221034756.1587174213.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=221034756.2.10.1587174213',
'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'
}
requests.get(url=url, headers
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值