内容如下:
通过观察不同页码的Url,
Url:'https://movie.douban.com/j/chart/top_listtype=5&interval_id=100%3A90&action=&start=0&limit=20'
Url:'https://movie.douban.com/j/chart/top_listtype=5&interval_id=100%3A90&action=&start=20&limit=20'
Url:'https://movie.douban.com/j/chart/top_listtype=5&interval_id=100%3A90&action=&start=40&limit=20'
我们通过inspect我们可以发现一页是二十部电影的内容,limit就是一页的限制数量,start是开始电影的序号。
所以我们通过定义函数,for循环,完成前N页内容的爬取,代码如下:
import urllib.request
import urllib.parse
def creat_request(page):
base_url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action='
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82'
}
data={
'start':'(page-1)*20',
'limit':'20'
}
data = urllib.parse.urlencode(data)
url = data + base_url
request = urllib.request.Request(url=url, headers=headers)
return request
def get_content(request):
urllib.request.urlopen(request)
content = response.read().decode('utf-8')
return(content)
def down_load(page,content)
with open('douban' + str(page) + 'json','w',encoding='utf-8')as fp:
fp.write(content)
start_page = int(input('请输入起始页码'))
end_page = int(input('请输入结束页码'))
for page in range(start_page,end_page+1):
request = creat_request(page)
content = get_content(request)
down_load(page,content)
今天就酱紫。