目录

  • python爬取豆瓣排行榜电影(静态爬取)
    • 获取网站url
    • 获取网站headers
    • get请求访问url
    • BeautifulSoup解析网站
    • 爬取html数据
    • 完整代码

python爬取豆瓣排行榜电影(静态爬取)


爬取页面上每个电影的名称、年份,评分和类型。

获取网站url

因为我们爬取的内容第一个页面没有,需要点击电影进入详情

所以我们需要获取每个电影链接的url
打开f12寻找标签

url = 'https://movie.douban.com/chart'
r = requests.get(url,headers=headers)
r_b = BeautifulSoup(r.text,'lxml')
a_list = r_b.find_all(class_='pl2')#找到所有class为pl2的标签,每个电影所在html中的标签
url_list = []
for a in a_list:url_list.append(a.find('a').attrs['href'])#获取标签a下和链接

获取网站headers

按下f12,选中Network,按下f5刷新,

找到Cookie、referer、user-Agent
设置headers

headers = {'Cookie':'bid=n_IZTjBerIQ; __yadk_uid=ycqCriKvT0a5PcKLRNhceCyhO4Sz0Fah; ll="108307"; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1575852775%2C%22https%3A%2F%2Fwww.google.com%2F%22%5D; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1355054136.1575426113.1575442804.1575852775.3; __utmb=30149280.0.10.1575852775; __utmc=30149280; __utmz=30149280.1575852775.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=223695111.1771316839.1575426113.1575442804.1575852776.3; __utmb=223695111.0.10.1575852776; __utmc=223695111; __utmz=223695111.1575852776.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _pk_id.100001.4cf6=b00d2b706551734b.1575426113.3.1575852779.1575442796.','referer':'https://movie.douban.com/','user-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}

get请求访问url

get访问每个电影的详情页url

for url_ in url_list:#print(url_)r_url = requests.get(url_,headers=headers)#访问每一个电影详情

BeautifulSoup解析网站

for url_ in url_list:#print(url_)r_url = requests.get(url_,headers=headers)#访问每一个电影详情r_url_b = BeautifulSoup(r_url.text,'lxml')

爬取html数据

    movie_title = r_url_b.h1.span.string#获取h1中span的内容(电影标题)time_ = r_url_b.h1.find('span',class_='year').string#找到class为year的标签span的内容(年份)movie_score = r_url_b.find('strong',class_='ll rating_num').string#找到class为ll rating_num的标签span的内容(电影评分)movie_types = r_url_b.find_all('span',property='v:genre')#找到property为v:genre的标签span的内容,类型有多种所以用find_all#info = r_url_b.find('div',id='info').text#找到id为info的div标签textmovie_type_list = []movie_comment = r_url_b.find('span',property='v:summary')#找到preperty为v:summary的span标签(评论)for movie_type in movie_types:movie_type_list.append(movie_type.string)#获取每一种类型的值print(movie_title,time_,movie_score,movie_type_list)#print(info)print(movie_comment.text.replace(' ',''))

完整代码

import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/chart'
headers = {'Cookie':'bid=n_IZTjBerIQ; __yadk_uid=ycqCriKvT0a5PcKLRNhceCyhO4Sz0Fah; ll="108307"; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1575852775%2C%22https%3A%2F%2Fwww.google.com%2F%22%5D; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1355054136.1575426113.1575442804.1575852775.3; __utmb=30149280.0.10.1575852775; __utmc=30149280; __utmz=30149280.1575852775.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=223695111.1771316839.1575426113.1575442804.1575852776.3; __utmb=223695111.0.10.1575852776; __utmc=223695111; __utmz=223695111.1575852776.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); _pk_id.100001.4cf6=b00d2b706551734b.1575426113.3.1575852779.1575442796.','referer':'https://movie.douban.com/','user-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}
r = requests.get(url,headers=headers)
r_b = BeautifulSoup(r.text,'lxml')
a_list = r_b.find_all(class_='pl2')#找到所有class为pl2的标签
url_list = []
for a in a_list:url_list.append(a.find('a').attrs['href'])#获取标签a下和链接
#print(url_list)
for url_ in url_list:#print(url_)r_url = requests.get(url_,headers=headers)#访问每一个电影详情r_url_b = BeautifulSoup(r_url.text,'lxml')movie_title = r_url_b.h1.span.string#获取h1中span的内容(电影标题)time_ = r_url_b.h1.find('span',class_='year').string#找到class为year的标签span的内容(年份)movie_score = r_url_b.find('strong',class_='ll rating_num').string#找到class为ll rating_num的标签span的内容(电影评分)movie_types = r_url_b.find_all('span',property='v:genre')#找到property为v:genre的标签span的内容,类型有多种所以用find_all#info = r_url_b.find('div',id='info').text#找到id为info的div标签textmovie_type_list = []movie_comment = r_url_b.find('span',property='v:summary')#找到preperty为v:summary的span标签(评论)for movie_type in movie_types:movie_type_list.append(movie_type.string)#获取每一种类型的值print(movie_title,time_,movie_score,movie_type_list)#print(info)print(movie_comment.text.replace(' ',''))

python爬取豆瓣排行榜电影(静态爬取)(二次爬取)相关推荐

  1. 【Python实战】爬取豆瓣排行榜电影数据(含GUI界面版)

    项目简介 这个项目源于大三某课程设计.平常经常需要搜索一些电影,但是不知道哪些评分高且评价人数多的电影.为了方便使用,就将原来的项目重新改写了.当做是对爬虫技术.可视化技术的实践了.主要是通过从排行榜 ...

  2. 爬取豆瓣排行榜电影数据

    进入豆瓣排行榜喜剧模块页面,我们想要获取其电影数据,首先肯定不能直接对当前url发起请求,因为这样获取的将会是整个页面数据,而不是单纯的电影数据. 经过观察发现该页面可以往下拖动页面而更新电影,所以猜 ...

  3. python爬取豆瓣排行榜电影数据(含GUI界面版)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  4. [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

    这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对 ...

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

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

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

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

  7. Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除)

    Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除) import requests from bs4 import BeautifulSoup import ti ...

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

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

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

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

最新文章

  1. 暂时无法登陆GOOGLE,却依然可以用GOOGLE搜索--更多GOOGLE入口
  2. LCS2005应用扩展-我的ATiPer
  3. 五十三、Java的记录日志Log4j框架的使用
  4. python两个列表合并 从小到大排列_Python对两个有序列表进行合并和排序的例子...
  5. 一文讲透B端产品/C端产品、SaaS/PaaS/IaaS的区别
  6. html打开时按钮自动触发事件,html在用户按下按键时触发的事件属性onkeydown
  7. python绘制折线图保存_python如何画折线图
  8. RocketMQ入门到入土(二)事务消息顺序消息
  9. AIoT催使AI深度场景化,“AI赋能,智联万物——开发者沙龙·南京站”圆满落幕...
  10. android fragment 抽屉,如何从Fragment Android中禁用或隐藏抽屉布局
  11. paip.提升用户体验----应用程序调用外部字体的应用..
  12. 2021-08-1320210813SONY的专业DSD播放格式(DSF)转WAV的方法
  13. [原创]C#中国象棋网络版源代码-C# Chinese Chess Source Code
  14. 树莓派——CSI摄像头和USB摄像头的配置与调试
  15. SAP PI PO XSLT Mapping of Adapter-Specific Message Attributes
  16. [年度总结]我的ACM2013
  17. 关于Unity屏幕分辨率的比例
  18. 游戏编辑器制作(6)
  19. 2023第八届少儿模特明星盛典 小超模刘子衿 担任全球赛代言人
  20. 最简单的函数,看看就会了

热门文章

  1. mysql counta_MySQL的COUNT函数
  2. remote: Repository not found. fatal: repository 'https://github.com/pete/first_app.git/' not found
  3. Python pandas库|任凭弱水三千,我只取一瓢饮(2)
  4. 早安我的少年怎么用电脑玩 早安我的少年模拟器玩法教程
  5. 距离空间,线性空间,赋范线性空间,Banach空间,内积空间,Hilbert空间的内在关系
  6. 泰拳的快感之二——我看《冬荫功》
  7. NOIP11.15模拟 T2 三部曲
  8. 滴滴和优步为何合并?对你有何影响?该如何看待?
  9. 痞子衡嵌入式:ARM Cortex-M文件那些事(4)- 可重定向文件(.o/.a)
  10. OpenCV笔记11:利用HSV颜色空间进行目标检测和目标跟踪