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

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,粘贴进去就能看结果了哦!