Scrapy爬蟲教程一 Windows下安裝Scrapy的方式和問題總結
Scrapy爬蟲教程二 淺析最煩人的反爬蟲手段
Scrapy爬蟲教程三 詳細的Python Scrapy模擬登錄知乎
Scrapy爬蟲教程四 Scrapy+Selenium有瀏覽器界面模擬登錄知乎
Scrapy爬蟲教程五 爬蟲部署
之前單獨使用Scrapy來模擬登錄了知乎,今天在這里結合Selenium來模擬JavaScript(也就是模擬人點擊和輸入)來模擬登陸知乎俯树,這篇文章中只使用了Selenium進行有界面的模擬操作驶鹉。先來介紹幾個概念:
Phantomjs
????作為一個基于webkit內(nèi)核的沒有UI界面的瀏覽器饥漫,看到這里還有一些神秘感,大家就把這個當做一個瀏覽器就好了。而其中的一些點擊槽畔、翻頁等操作則由代碼實現(xiàn)。Phantomjs提供javascript API接口胁编,即我們可以通過js與webkit內(nèi)核交互厢钧。
? ? 關于Phantomjs的詳細介紹大家可以關注這篇文章:blog.csdn.net/tengdazhang770960436/article/details/41320079
Selenium
????作為一個用于Web應用程序測試的工具,其測試直接運行在瀏覽器中嬉橙,框架底層使用JavaScript模擬真實用戶對瀏覽器的操作早直,從終端用戶的角度測試應用程序。將Selenium與Phantomjs聯(lián)系起來市框,便是我們可以通過使用Selenium操作Phantomjs訪問網(wǎng)頁以獲得js生成后的網(wǎng)頁霞扬。
有好多文章介紹了在Scrapy工程中,建立中間件枫振,在中間件中使用Selenium來請求數(shù)據(jù)喻圃,并對返回的結果進行包裝再返回到爬蟲文件對應的方法中(也就是爬蟲文件的方法中的response其實是在中間件中Selenium獲得數(shù)據(jù)driver.page_source),針對這種形式在這里先不說明了粪滤。
簡單的概念已經(jīng)介紹完了斧拍,下面開始上代碼,老規(guī)矩杖小,依然是上圖片:
親測有效肆汹,這回可以肆無忌憚的借用數(shù)據(jù)啦,這里提醒一下知乎的反爬蟲啊予权,User-Agent和IP代理池的使用昂勉,之后我也會有介紹的。