领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

以「山河令」为实战案例,手把手教你用Python爬取「优酷」评论

nixiaole 2025-04-07 17:23:25 知识剖析 11 ℃

优酷新加了加密反爬。把手教大家爬取『优酷』视频评论。

『山河令』刚开播就天天在优酷热播榜首,热度到现在也一直都没减。(沉迷于颜值无法自拔中)

自古评论出人才!小编想爬取『山河令』的视频评论,奈何优酷平台的视频评论有逆向加密反爬。一直苦于无法解决。不过现在既然小编发出来了,说明已经爬取成功了。


01

Selenium自动化

『优酷』的加密反爬(这个我不会)就不介绍了



看到Seleium大家应该都不陌生。使用了Seleniumn方式去采集到了『优酷』的视频评论。


1.安装Selenium


通过下面命令可以安装


pip install Selenium


Selenium3.x调用浏览器必须有一个webdriver驱动文件。


  1. Chrome驱动文件下载https://chromedriver.storage.googleapis.com/index.html?path=2.35/
  2. 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条。


思路提示:可以将上面这个图中代码放到循环中,那样就可以一直爬取下一页。加入去重进制就可以避免重复保存之前已采集的内容。(这个就留给大家去发挥,动动手)。


最后附上运行的效果:



最近发表
标签列表