上接:
Python3网络爬虫教程9——有道在线翻译项目(破解JS加密过程)
7. ajax异步请求
- 异步请求
- 一定会有url,请求方法,可能有数据
- 一般使用json格式
- 豆瓣排行榜-剧情:https://movie.douban.com/typerank?type_name=剧情&type=11&interval_id=100:90&action=
- 该网页向下拉动,一直拉不完,会自动请求,更新页面,就是使用了ajax请求
- 打开上面网页,然后滚动,检查页面,观察每次向下滚动的变化,发现,每次向下滚动
- 会出来一个新的请求网址,同时每次更新的图片也在20张,
- 参考图片43_20.png
- 拿出其中两个请求URL进行比较分析
https://movie.douban.com/j/chart/top_list?
电影类型剧情:type=11&
评分区间好于100%到90%的影片:interval_id=100%3A90&
这个不管:action=&
从第四十部开始:start=40&
每次刷新限制为20部,下面对应20张图片请求:limit=20
- 案例43_20,爬取豆瓣电影数据
# 爬取豆瓣电影
# 了解ajax请求(向下滚动网页,网页自动不停的更新)
import json
from urllib import request
if __name__ == '__main__':
url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=40&limit=20'
rsp = request.urlopen(url)
# 读取网页数据,一般为json格式, 直接读取到的是bytes格式,解码后是一个str字符串格式
data = rsp.read().decode()
print(type(data))
# json格式进行解码为python格式,发现是一个list
data = json.loads(data)
print(type(data))
print(data)
下接:
Python3网络爬虫教程11——Requests包(HTTP for Humans)