python3爬取豆瓣电影Ajax(获取动态内容)

时间:2020-12-12 12:31:12

利用python3中的urllib模块对豆瓣电影的“喜剧片”进行爬取。因为是动态页面,我们关注点应在数据来源上,我们知道所有Ajax数据来源都是json,通过Fiddler抓包工具,我们可以获取相应json数据,提取出相应url,以及post请求的QueryString,之后便可以进行代码的编写。
代码如下:

# -*- coding:utf-8 -*-
from urllib import request as urllib2
from urllib import parse

url = r'https://movie.douban.com/j/new_search_subjects?'

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'
}
formData = {
    'sort':'T',
    'range':'0,10',
    'tags':'电影,喜剧',
    'start':'0',
}
data = parse.urlencode(formData).encode('utf-8')
request = urllib2.Request(url=url, data=data, headers=headers)
response = urllib2.urlopen(request)
print(response.read().decode())

运行之后便可以得到相应json数据,值得注意的是start值代表起始电影序号。0代表评分最高的电影(或其他排序规则)。可以通过修改start值随意爬取数据。