本文是下面两篇文章的续篇
本系列包括如下内容抓取豆瓣top250一页多个字段
整合成列表
存储为json文件
定义成函数形式
多页抓取之构造url
多页抓取之翻页
抓取二级页面数据
通过生成器优化代码
改写为类的形式
本文主要讲多页抓取之构造url
多页抓取之翻页
抓取二级页面数据
上一篇文章我们定义函数,抓取豆瓣top250一页的数据,代码如下
import requests # 导入网页请求库
from bs4 import BeautifulSoup # 导入网页解析库
import json
def start_requests(url):
r = requests.get(url)
return r.content
def parse(text):
soup = BeautifulSoup(text, 'html.parser')
movie_list = soup.find_all('div', class_ = 'item')
result_list = []
for movie in movie_list:
mydict = {}
mydict['title'] = movie.find('span', class_ = 'title').text
mydict['score'] = movie.find('span', class_ = 'rating_num').text
mydict['quote'] = movie.find('span', class_ = 'inq').text
star = movie.find('div', class_ = 'star')
mydict['comment_num'] = star.find_all('span')[-1].text[:-3]
result_list.append(mydict)
return result_list
def write_json(result):
s = json.dumps(result, indent = 4, ensure_ascii=False)
with open('movies.json', 'w', encoding = 'utf-8') as f:
f.write(s)
def main():
url = 'https://movie.douban.com/top250'
text = start_requests(url)
result = parse(text)
write_json(result)
if __name__ == '__main__':
main()
接下来我们要根据这个代码进行改进。
多页抓取之构造url
上一篇文章我们已经完善了抓取一个页面的爬虫代码,现在我们需要抓取10个页面250个电影的信息,抓取多