python3-豆瓣电影数据爬取
程序员文章站
2022-05-28 23:32:29
...
python3.7爬取豆瓣电影实操
话不多说 上代码
抓包页面:
from urllib import request
import requests
import json
#构建爬虫类
class DoubanSpider:
def __init__(self):
self.templete_url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start={}" #抓包 豆瓣电影url 分析headers 参数
self.total = 1000 #暂时抓取1000条数据
# 处理内容 获取相要的内容
def get_content_list(self, dict_str):
return dict_str['subjects']
# 保存内容 将数据写入文本 并保存相应缩略图
def save_content_list(self, content_list):
with open("douban_movie.text", "a") as f:
for content in content_list:
request.urlretrieve(content['cover'],'doubancover/%s.jpg' % content['title'])
f.write(json.dumps(
"评分:" + content['rate'] + " 名称:" + content['title'] + " 地址:" + content['url'] + " 缩略图:" + content[
'cover'], ensure_ascii=False))
f.write("\n")
print('保存成功')
# 发送请求获得数据
def parse_url(self, url):
headers = {
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36",
"referer": "https://movie.douban.com/explore",
}
response = requests.get(url, headers=headers)
json_str = response.content.decode()
dict_str = json.loads(json_str)
return dict_str
# 主方法 实现主要逻辑
def run(self):
num = 0
total = self.total
while num <= total:
# 1 获取基础url
url = self.templete_url.format(num)
print(url)
# 2 发送请求 获取相应
dict_str = self.parse_url(url)
# 3 数据处理
content_list = self.get_content_list(dict_str)
# print(content_list)
# 4 数据保存
self.save_content_list(content_list)
# 5 构造下一页的url地址
num += 20
if __name__ == '__main__':
DoubanSpider().run()
最后运行效果
视频展示:
python3-豆瓣电影爬虫1
上一篇: Java对象(一)
下一篇: costmap配置教程和详细理解