1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 爬虫获取豆瓣喜剧电影相关信息

爬虫获取豆瓣喜剧电影相关信息

时间:2023-01-31 13:32:43

相关推荐

爬虫获取豆瓣喜剧电影相关信息

利用Requests库爬取豆瓣喜剧电影排行榜 前两百部电影的相关信息

首先附上豆瓣电影的网站链接:思考步骤:最后附上本文的代码:前200部电影结果展示:

首先附上豆瓣电影的网站链接:

链接: link.

思考步骤:

右键网页 + 点击检查:

当我们下拉到第20部电影(蓝色圈)的时候 可以发现右边 network里面出现了请求

可以观察到 页面请求是get 并且 内容的格式(Content-Type) 为json

get() 请求里是不是可以添加params 参数呢

所以我们自定义params参数 通过get请求 返回给网页

param = {'type': '24','interval_id': '100:90','action': '','start': 0,'limit': '20'}

通过返回这样的参数 我们可以获取前20部电影的相关信息

在抓取到页面的资源后 利用json格式获取数据:

如何获取json里面的数据?

easy: 我们通过取字典里面内容的方式就可以了

print(response.json()[0].get('title'))print(response.json()[0].get('score'))print(response.json()[0].get('regions'))

最后附上本文的代码:

# 在下拉的过程中 页面ajax动态刷新页面 利用抓包工具查看返回内容类型 get请求 返回特定的参数即可 import requestsimport jsonimport pandas as pdif __name__ =="__main__":# 爬取豆瓣喜剧电影排行榜前200步电影的相关信息df = pd.DataFrame(columns=['电影名','评分','地区','地址','发布日期','评论人数'])url = '/j/chart/top_list' # 豆瓣电影地址headers = {"User-Agent" :"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"} # 利用 headers进行伪装for num in range(0,181,20): # 页面是ajax动态刷新的 每下拉到二十部 就刷新一次页面 所以181的下标 包含了前200部param = {'type': '24','interval_id': '100:90','action': '','start': num,'limit': '20'}response = requests.get(url=url,params=param,headers=headers) # 页面为get请求 可以在网站的headers中看到content=response.json() # Content-Type 为 json格式的数据 length=len(content)for i in range(0,length):s = pd.Series({'电影名':content[i].get('title'),'评分':eval(content[i].get('score')), '地区':content[i].get('regions')[0] , '地址':content[i].get('url'),'发布日期':content[i].get('release_date'),'评论人数':content[i].get('vote_count')})df = df.append(s, ignore_index=True)# 这里必须选择ignore_index=True 或者给 Series 一个index值df.to_csv('./douban_movie.csv',encoding='utf-8',index=False,index_label=None)

前200部电影结果展示:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。