网站首页 > 知识剖析 正文
优酷新加了加密反爬。把手教大家爬取『优酷』视频评论。
『山河令』刚开播就天天在优酷热播榜首,热度到现在也一直都没减。(沉迷于颜值无法自拔中)
自古评论出人才!小编想爬取『山河令』的视频评论,奈何优酷平台的视频评论有逆向加密反爬。一直苦于无法解决。不过现在既然小编发出来了,说明已经爬取成功了。
01
Selenium自动化
『优酷』的加密反爬(这个我不会)就不介绍了
看到Seleium大家应该都不陌生。使用了Seleniumn方式去采集到了『优酷』的视频评论。
1.安装Selenium
通过下面命令可以安装
pip install Selenium
Selenium3.x调用浏览器必须有一个webdriver驱动文件。
- Chrome驱动文件下载https://chromedriver.storage.googleapis.com/index.html?path=2.35/
- Firefox驱动文件下载https://github.com/mozilla/geckodriver/releases
2.采集实战
在使用Selenium之前,先引入库
from selenium import webdriver
然后引入webdriver,我这里是下载好之后放在D盘下面(辰哥这里使用chrome)
#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Chrome(executable_path ="D:\chromedriver.exe")
然后开始请求目标网页(山河令:第一集)
#2.通过浏览器向服务器发送URL请求
browser.get("https://v.youku.com/v_show/id_XNTEwMTg0NjE5Mg==.html?spm=a2h0c.8166622.PhoneSokuProgram_1.dselectbutton_1&showid=ceba4745ea10415eb791")
完整请求代码如下:
运行代码之后,自动打开浏览器
请求到之后开始进行对应页面自动化操作
3.到达页面底部
评论是在页面的底部(因为页面滚动到底部,才会加载出来评论),我们需要让页面到底部加载出评论到页面
其效果如下:
因为评论加载出来了,页面变长了,所以一开始的底部就只是靠近中间位置。
4.解析网页
既然评论数据加载到网页了,可以使用xpath对网页进行解析,提取出评论数据。先看一下页面标签
可以看到评论列表是在class标签comment-list-all,每一条评论都在class标签
comment-list-item里,内容是在class标签comment-list-content-text里。清楚这些之后,可以开始编写代码,进行解析。
打印输出:
内容输出没问题,最后还打印输出了评论数(10条,这里是10条是指这一页的),下面尝试爬取下一页。
5.爬取下一页
在分析之前,先看一下页面是如何加装下一页评论的
可以看到页面点击:查看更多评论,页面是异步加载下一页评论。既然知道这些,那么可以使用selenium模拟点击完成这步操作。
sleep(1)
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
browser.execute_script(js)
查看更多评论在页面底部,所以先滚动到页面底部。前面的sleep(1)是等待页面加载完毕,1秒后再开始滚动。
#点击:查看更多评论
elem1=browser.find_element_by_link_text("查看更多评论")
elem1.click()
sleep(1)
sleep(1)是等待1秒后点击。点击后就可以解析数据了。代码如下:
打印输出:
这里可以看到已经获取到加载后的数据,同时还作了对比,点击:查看更多评论前是10条评论,点击后再加载10条,那么可以获取到20条。
思路提示:可以将上面这个图中代码放到循环中,那样就可以一直爬取下一页。加入去重进制就可以避免重复保存之前已采集的内容。(这个就留给大家去发挥,动动手)。
最后附上运行的效果:
猜你喜欢
- 2025-04-07 强大的 Web 应用自动化测试工具 Selenium.WebDriver
- 2025-04-07 delphi TChromium控件(delphi常用控件)
- 2025-04-07 如何使用 Scrapy 执行 JavaScript
- 2025-04-07 VBA编程,如何对窗体滚动条进行上下左右移动,这个方法真实用
- 2025-04-07 关于web自动化过程中滑块解锁问题以及页面滚动的问题的研究
- 2025-04-07 selenium:操作滚动条的方法(8)(selenium横向滚动条)
- 2025-04-07 IOS遇到的几个H5坑、h5键盘弹起遮挡输入框的处理
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)