首頁 > 軟體

以『山河令』為實戰案例,手把手教你用Python爬取『優酷』評論

2021-05-31 12:30:05

優酷新加了加密反爬。把手教大家爬取『優酷』視訊評論。

『山河令』剛開播就天天在優酷熱播榜首,熱度到現在也一直都沒減。(沉迷於顏值無法自拔中)

自古評論出人才!小編想爬取『山河令』的視訊評論,奈何優酷平臺的視訊評論有逆向加密反爬。一直苦於無法解決。不過現在既然小編髮出來了,說明已經爬取成功了。

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秒後再開始滾動。

sleep(1)是等待1秒後點擊。點選後就可以解析資料了。程式碼如下:

這裡可以看到已經獲取到載入後的資料,同時還作了對比,點選:檢視更多評論前是10條評論,點選後再載入10條,那麼可以獲取到20條。

思路提示:可以將上面這個圖中程式碼放到迴圈中,那樣就可以一直爬取下一頁。加入去重進位制就可以避免重複儲存之前已採集的內容。(這個就留給大家去發揮,動動手)。

最後附上運行的效果:


IT145.com E-mail:sddin#qq.com