文章目录

  • Python爬取豆瓣各类电影排行榜
    • 首先分析豆瓣网页url

Python爬取豆瓣各类电影排行榜

爬虫就是模仿浏览器对网页信息进行收集,而过多的请求页面会造成网页服务气压力过大,所以网页也会执行一系列反爬机制,比如爬取时间间隔限制等,豆瓣相对来说没有国多的反爬机制,只要伪装好请求头,即可爬取信息。
本文将豆瓣排行榜中各种类型电影的排名情况爬取并存入excel中,爬取的内容主要包括电影名称、发行时间、演员、网址链接、排名和评分等内容,可以自己设定爬取的数量。

首先分析豆瓣网页url


首先找到请求方式:GET

另外可以看到响应信息格式
可见式JSON格式

再找到请求信息

start:是开始请求的内容
limit:是每次请求的数量

爬虫主要使用了request、json、pandas这三个库
经过分析发现不同种类类型的url仅仅是type发生改变,对应关系如下

通过字符串修改type即可实现爬取不同页面

下面是程序的主要代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-import requests
import json
import pandas as pddef douban(word1,Number):type_name={"剧情":"11","喜剧":"24","动作":"5","爱情":"13","科幻":"17","动画":"25","悬疑":"10", \"惊悚":"19","恐怖":"20","纪录片":"1","短片":"23","情色":"6","同性":"26",\"音乐":"14","歌舞":"7","家庭":"28","儿童":"8","传记":"2","历史":"4","战争":"22","犯罪":"3","西部":"27",\"奇幻":"16","冒险":"15","灾难":"12","武侠":"29","古装":"30","运动":"18","黑色电影":"31"}url = "https://movie.douban.com/j/chart/top_list"Params = {'type': f"{type_name[word1]}",'interval_id': "100:90",'action': None,'start': "0",'limit': f"{Number}",}headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"}response = requests.get(url=url , params=Params ,headers=headers)result = response.json()title=["片名",]release_date=["发布日期",]actors=["演员",]rating=["分数",]rank=["排名",]url=["链接",]for i in result:title.append(i["title"])release_date.append(i["release_date"])actors.append(i["actors"])rating.append(i["rating"][0])rank.append(i["rank"])url.append(i["url"])output_excel={"片名":[],"发布日期":[],"演员":[],"分数":[],"排名":[]}output_excel["片名"]=titleoutput_excel["发布日期"]=release_dateoutput_excel["演员"]=actorsoutput_excel["分数"]=ratingoutput_excel["排名"]=rankoutput_excel["链接"]=urloutput = pd.DataFrame(output_excel)'''with open(f"./{word1}.json","w",encoding="utf-8") as f:json.dump(result,fp=f,ensure_ascii=False)'''return outputword_list=["剧情","喜剧","动作","爱情","科幻","动画","悬疑","惊悚","恐怖",\"纪录片","短片","情色","同性","音乐","歌舞","家庭","儿童","传记","历史","战争","犯罪","西部",\"奇幻","冒险","灾难","武侠","古装","运动","黑色电影"]#存入excel
m=1
writer = pd.ExcelWriter("豆瓣电影.xlsx")
Number=input("请输入要爬取的数量:")
for i in word_list:exec('output'+f'{m}'+' = douban(i,Number)')#exec('print('+'output'+f'{m}'+')')exec('output'+f'{m}'+'.to_excel(writer,i)')m+=1
writer.save()

程序中用到exec来进行批量存储,exec的具体用法可以参考我的另一篇文章利用ecec批量生成变量

爬取结果展示:

Python爬取豆瓣各类电影排行榜相关推荐

  1. python自定义爬取豆瓣各类电影排行榜

    import requestsif __name__ == "__main__":name_typs01 = '剧情-编码:11' + ' , ' + '喜剧-编码:24' + ' ...

  2. python 爬取豆瓣top100电影页面

    python 爬取豆瓣top100电影页面 运行结果截图: 代码: (原网站:https://movie.douban.com/top250) 1.将页面保存 避免多次访问 (登陆状态需页面cooki ...

  3. 大数据Python爬取B站电影排行榜——爬取信息

    大数据Python爬取B站电影排行榜-信息爬取 前言 一.配置环境 二.爬取B站电影排行榜top100 1.找到B站电影排行榜top100网页 2.用URL进行爬取信息 三.建立Excel表并导出 总 ...

  4. Python爬取豆瓣Top250电影中2000年后上映的影片信息

    Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...

  5. Python爬取豆瓣Top250电影可见资料并保存为excel形式

    Python爬取豆瓣Top250电影可见资料并保存为excel形式 利用requests第三方库实现网页的元素爬取,再使用openpyxl库进行信息的录入. 具体思路 1.分析网页的headers. ...

  6. PowerBI也能做爬虫:爬取豆瓣Top电影排行榜

    对于简单的页面数据爬取,其实使用PowerBI就可以可视化直接实现了,不需要另外写爬虫程序.本文以爬取豆瓣Top250电影排行榜示例说明下操作的基本过程. 一.分析URL规律及网页结构 打开豆瓣电影T ...

  7. Python爬取豆瓣Top250电影排名

    # -*- codeing = utf-8 -*- # @Time: 2021/12/27 14:30 # @Author: 买欣怡 # @File: 7. spider-豆瓣.py # @Softw ...

  8. Python爬取豆瓣动作电影好评前100名

    获取豆瓣动作电影好评前100名 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # https://movie.douban.com/j/chart/ ...

  9. python爬取豆瓣TOP250电影

    按照小甲鱼的爬虫教程,再自己修改了一部分. 废话不多说,直接贴代码 import requests from bs4 import BeautifulSoup import redef open_ur ...

  10. 爬取豆瓣TOP250电影排行榜

    正则表达式的概念 使用单个字符串来描述一系列符合某个句法规则的字符串 是对字符串操作的一种逻辑公式 应用场景:处理文本和数据 正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配, ...

最新文章

  1. vsftpd登录报530
  2. 前端新手程序员不知道的 20个小技巧
  3. Linux之VI命令详解
  4. jvm体系结构_JVM体系结构:JVM中的执行引擎
  5. 嵌入式码头,Vaadin和焊接
  6. 大学python笔记_Python 上手笔记
  7. python基础语法_字符串编码
  8. Linux内核升级Broadcom网卡问题(bnx2)
  9. 【反编译】apk反编译之修改贴吧发贴回帖时显示的地理位置
  10. 计算机网络的核心概念
  11. 汇川HnU系列PLC以太网通讯解决方案
  12. JAVA的学习(在IDEA环境下)
  13. 软件测试117道面试题直击面试官灵魂
  14. 普通人的2022春招总结(阿里、腾讯offer)
  15. 网吧服务器是起什么作用的,网吧服务器缓存命中率是什么,有什么用?
  16. HTML+CSS+前端项目
  17. 面试题 08.08. 有重复字符串的排列组合-快速排序+回溯深度优先搜索
  18. Apple推荐的2020年最佳应用程序已经出炉
  19. 【初学者系列】02-算法实例Jupyter转换为Python流程
  20. 双节锂电池充电芯片IC,5V升压FS4059A,9V降压FS7222

热门文章

  1. 干货|浅谈iOS端短视频SDK技术实现
  2. 用计算机弹苹果手机铃声,10秒搞定,苹果iPhone手机不用电脑换铃声,这个方法真的炒鸡简单!...
  3. golang的dep和vender
  4. 读《混世小农民》有感
  5. 解决requestLayout() improperly called by android.widget.TextView{...}
  6. lemon/cena C++ SPJ姿势
  7. Python: Basemap进行数据可视化分析------专题图绘制
  8. oracle11g闪回默认路径,rman 备份默认路径小结
  9. Suspense示例
  10. 珍惜生命,战胜自己,活出精彩