既然兩者都可以直接get到源碼,requests只能爬靜態頁面,而selenium不但能獲得js動態給出的源碼,模擬真實登錄也減少了反爬的限制。

所以,直接無腦上selenium是不是就行了?requests還有啥特別用途嗎?

初學爬蟲的小白問題,大佬見諒。


人肉啥都能爬到,還不如用人


selenium獲取cookies

requests用上面的cookies完成登錄認證

然後就可以爬到很多你想要爬的東西

如果頁面內容被JS加密了

那要麼js解密,要麼單用selenium降速採集

最後,我覺得高並發的爬蟲是不太道德的

而且,你要那麼多垃圾數據有什麼卵用??


主要的問題是,它太慢了!

如果你就爬很少的東西,無所謂了。

很多時候需要一天爬個上百萬頁面,這個咋整?

要不就有錢任性,多搞點機器?


獲得多出來的前端渲染功能是需要代價的

你要爬一百萬個網頁 是不是都得等chrome慢慢給你渲染啊,那你有生之年就等著吧


完成的工作不一樣


效率問題,當爬取量大了弊端就顯而易見了。selenium太慢了!


2017 年 Chrome 官方團隊連續放了兩個大招 Headless Chrome 和對應的 NodeJS API Puppeteer,直接讓 PhantomJS 和 Selenium IDE for Firefox 作者宣佈暫停繼續維護其產品,PhantomJs 的開發者更直接宣稱自己要失業了。

退一萬步講, 就算取代requests, 也應該是puppeteer取代吧.


selenium需要搭配瀏覽器使用,花費資源更多,而且並發量小。效率低


不能。前者性能非常差


除了效率問題,時代也在發展,用selenium做爬蟲的人多了自然就會被針對,爬蟲是與人對抗,沒有一勞永逸的辦法


也就是看你是小白,沒事多看看別人的專欄,比如我的。

少問這種問題


一開始我瞭解爬蟲的時候,也是和你一樣,當時我是知道phatomjs,然後我還發了個朋友圈,有了phtomjs爬蟲還有什麼可怕,秒殺python的request啊。。。emmmm,後來隨著知識的積累,和工作經驗增加,你會發現,你是在不清楚你具體要做什麼事的前提下說的這句話,比如說你要1分鐘爬100個頁面,這個時候你就會發現selenium存在的問題,相對於協議它非常的慢,所以就是為什麼你現在需要一些JS逆向之類的知識了。這裡推薦你瞭解下夜幕團隊的JS逆向課程

來了來了!爬蟲工程師最想要的手把手 JS 逆向系列教程!?

mp.weixin.qq.com圖標

瀉藥,requests和selenium區別還是很大的,前者通過模擬http協議獲取數據,後者直接調用瀏覽器,雖說都能得到數據,但後者有個致命的弱點,性能;可以這麼認為,當你使用瀏覽器模擬取得一條記錄的時候,requests已經為您取得了成千上萬條數據,當然selenium也是支持並發的,但你要搞清楚,它是高消耗應用,非常的耗資源,當然,如果您只是測試一下,或者僅僅只是抓少量的數據,那倒不會有什麼問題,事實上還有一點,基於現在的蟲師軍隊越發龐大,導致網站不得不將強防禦,自然selenium也就在它的防禦範圍之內了,意思是說,它是有缺陷的,而且特徵非常的明顯,並且,最重要一點,這個框架操作起來不太人性化,不夠方便,相對而言,requests就簡單多了,基本上提供請求的所有數據就能輕鬆完成數據獲取,當然遇到JS加密,它也無能為力,它不是瀏覽器,沒有解析的內核,所以終歸到底,想要掌握好爬蟲,你必須要先掌握JS加密,以上純屬個人觀點,如果您也喜歡爬蟲,歡迎訂閱我的博客:IT貓之家 我經常會在上面更新一些爬蟲方面的知識,希望對您有幫助!


推薦閱讀:
相關文章