1. 程式人生 > >模擬使用者行為高匿爬蟲的設計開發

模擬使用者行為高匿爬蟲的設計開發

       模擬使用者行為一是為了爬取資料非同步載入頁面方面,二也是為了爬蟲行為高度模仿使用者行為,最終目的還是為了高匿,寫高匿爬蟲做什麼,我就不說了,反正現在用爬蟲做事的公司太多了,很多公司應該都有這方面的需求。我在本文中主要使用之前部落格介紹過的pyspider,偶爾也會談談一些其他手段。不會談及Scrapy,因為已經基本忘了它的特性內容了。

       先談談使用者行為模擬,這個東西最常見的方法應該是Selenium WebDriver技術,這個東西是做Web自動化測試的,用Django的同學用StaticLiveServerTestCase也可以,當然這東西里面內部是依靠Selenium,在Django用testcase做這個事,主要是可以使用Django的models等設施方便做其他事。不能瞎扯了,談正題:Pyspider這方面,可以使用pyspider整合的phantomjs,程式碼裡具體怎麼用法,看pyspider文件吧。後面會講一些配置的問題。

下面講怎麼做高匿:

1、IP隱藏,現在網上有很多高匿http代理,所謂高匿代理,就是代理對被訪問伺服器完全隱藏其被代理的客戶端,具體細節見此文(http://www.aikaiyuan.com/9477.html),注意:使用網上的高匿代理時,一定要先在自己的伺服器上試一下,防止偽高匿發生,在Pyspider的Phantomjs中使用代理伺服器,需要單獨啟動phantomjs服務,啟動命令:

pyspider phantomjs -- --proxy=address:port

使用上面這個命令,必須是pyspider0.37及其以後版本。對於Selenium webdriver,怎麼用代理,看Selenium文件吧。

2、user-agent:這也是一個比較重要的資料特徵,要做在爬蟲裡面靈活設定,最好和目前主流瀏覽器環境的user-agent一模一樣,隨著瀏覽器的版本變化,你的user-agent也會變化。pyspider的user-agent是在一個爬蟲專案裡面做爬取全域性設定

3、cookie:這個東西可能會被很多爬蟲開發者所忽視,實際上它是非常重要的,cookie行為的模擬不但涉及到使用者行為模擬,而且會直接導致某些訪問請求碰到許可權或者其他方面的錯誤。pyspider的cookie可以直接在爬取請求裡面設定。

4、登入session問題:session問題在客戶端主要是cookie問題,如果你能做到cookie全域性模擬,session肯定不是問題。

5、如果高度模仿瀏覽器請求,有個簡便方法:看chrome網路請求的curl all copy資訊。