利用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值随意爬取数据。