声明:
1.本代码思路来源于本站UP主:python爬虫。
2.转载附原作者及本人Id,作品链接
3.本代码仅限于学习交流使用
4.请自觉遵守协定以及相关规定
全代码如下,修改path可用:
import requests
import json
class Get_Detail(object):
def __init__(self):
self.start_url="https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start={}"
self.urllist=[]
for i in range(9):
self.urllist.append(self.start_url.format(i*20))
#格式化添加
#生成页面列表
self.path=r"C:\Users\asus\Desktop\CS\PYTHON\应用实例\豆瓣热门.csv"
with open(self.path,"a") as file:
file.write("影名,评分,url,封面"+"\n")
#新建Excel文件并生成表头
def get_value(self,urllist):
kv={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"}
cont_dict_list=[]
#存放所有页面所有信息
for each in urllist:
response=requests.get(each,headers=kv)
dictionary=json.loads(response.text)
#json格式转换为字典
dictlist=dictionary["subjects"]
#取值获得字典列表
for eachdict in dictlist:
content={}
#存放单条所需信息
content["影名"]=eachdict["title"]
content["评分"]=eachdict["rate"]
content["url"]=eachdict["url"]
content["封面"]=eachdict["cover"]
cont_dict_list.append(content)
return cont_dict_list
def save_cont(self,contlist):
for each in contlist:
title=each["影名"]
rate=each["评分"]
url=each["url"]
cover=each["封面"]
with open(self.path,"a") as file:
file.write(title+","+rate+","+url+","+cover+"\n")
def run(self):
ctls=self.get_value(self.urllist)
self.save_cont(ctls)
#自我调用
if __name__=="__main__":
gd = Get_Detail()
#实例化
gd.run()
print("OVER")
代码至此结束
效果如下
欢迎大家在评论区发表合理的意见和指正。
如果觉得该栏目对您有帮助,望不吝点赞收藏。