Python3爬虫之urllib爬取异步Ajax数据,使用post请求!
程序员文章站
2022-05-05 16:14:02
...
ok,废话就不多说了,直接上手。今天爬取的是豆瓣电影的排行榜。
首先使用google浏览器的开发者工具,找到豆瓣的电影排行榜接口
https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=40&limit=20
分析这个url,发现后面的start=40&limit=20很像SQL语句里面的分页查询,ok,是一下吧
哎哟,真的是哎,发现规律:第一页start=0,limit=20,第二页start=20,limit=20.....
得出start计算方式:(page - 1)*20 (ps:20表示每页限制的内容条数哦,更改它,start也会随之更改!)
那么,接下来代码上手吧。
#多少页,计算方式是:(n-1)*20
#url https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=40&limit=20
import urllib.request
import urllib.parse
page = eval(input('请输入您想要的第几页的电影:'))
url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&' #start=40&limit=20
start = (page - 1) * 20
limit = 20
data = {
'start':start,
'limit':limit,
}
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'
}
data = urllib.parse.urlencode(data)
url = url + data
request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
打印一下看看吧,
注意,这里输出的是json数据,如果出现乱码,不要急,
复制输出的json代码,浏览器打开json.cn,粘贴进去就能看结果了哦!
下一篇: 多列索引