關于西刺免費代理ip_使用Python爬取西刺代理數(shù)據(jù)這個很多人還不知道,今天小編來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
(相關資料圖)
西刺免費 *** ip(使用Python抓取西刺 *** 數(shù)據(jù))
/1前言/
細心的朋友應該知道,上次邊肖發(fā)表了一篇關于IP *** 的文章,基于Python *** 爬蟲技術,主要介紹了如何從IP *** 網(wǎng)站抓取可用IP,Python腳本實現(xiàn)了驗證IP地址的時效性。如果爬蟲被禁止,可以通過文中的方法解決。如果沒時間上車,可以戳這篇文章看看:教你如何用免費 *** ip抓取數(shù)據(jù)。
接下來,即將在邊肖發(fā)布的三篇文章將從三個方面展開: *** 網(wǎng)站的介紹和反抓取措施、數(shù)據(jù)抓取和數(shù)據(jù)可視化操作。各方面獨家,希望對大家的學習有幫助。接下來,邊肖首先介紹該機構網(wǎng)站及其反抓取措施。
/2簡介/
西 *** 網(wǎng)站是一個收錄中國國內(nèi) *** 的網(wǎng)站,實時的有幾十萬。上面有很多 *** IP,有的是免費的,有的是付費的。免費一般是沒有的,即使當時用的很好,但是用不了多久就會變酷。
/3反爬蟲措施/
本文的主要內(nèi)容是使用Python來抓取網(wǎng)站數(shù)據(jù),其中爬蟲主要使用requests庫。這里簡單介紹一下反爬蟲措施。
經(jīng)過初步測試,發(fā)現(xiàn)該網(wǎng)站有很多反爬蟲措施,測試了以下措施:
1.直接使用** requests**庫,網(wǎng)站不會在不設置任何頭的情況下直接返回數(shù)據(jù)。
2.同一個ip連續(xù)訪問40多次,直接阻塞了ip。一開始我的** ip**就這樣被封了。
3.為了解決這兩個問題,最后,經(jīng)過研究,可以采用以下方法有效解決:
4.通過獲取正常的 *** 流量來獲取正常的請求頭,并在發(fā)出請求時設置這些常規(guī)的請求頭。這樣做的目的是讓目標網(wǎng)站認為我們的請求是通過瀏覽器正常發(fā)起的,而不是使用程序自動發(fā)起的。這樣就解決了之一個痛點。
5.超文本傳送協(xié)議(Hyper Text Transport Protocol的縮寫)
6.要求
7.超文本傳送協(xié)議(Hyper Text Transport Protocol的縮寫)
8.構建 *** 池。先從其他網(wǎng)站獲取一批初始 *** ,在抓取本網(wǎng)站 *** 數(shù)據(jù)時,使用這些 *** 實時加入被抓取的 *** 。每次爬行時,在 *** 池中隨機選擇一個 *** ,同時及時從 *** 池中移除那些失敗或被阻塞的 *** 。這樣我們就不用擔心一個ip時間長了會被封殺。
為了正常獲取請求頭,使用數(shù)據(jù)包捕獲工具Fiddler捕獲正常瀏覽器訪問該網(wǎng)站的數(shù)據(jù)包,如圖:
超文本傳送協(xié)議(Hyper Text Transport Protocol的縮寫)
提取數(shù)據(jù)后,將數(shù)據(jù)封裝到requests庫可以識別的header dictionary中供其調(diào)用,這樣通過使用正常的數(shù)據(jù)包,我們就不用擔心網(wǎng)站使用header check了。代碼中專門定義了一個函數(shù),只有調(diào)用該函數(shù)才能獲得字典:
然后,在請求網(wǎng)站的時候,設置這個頭。代碼如下:
要求
到目前為止,我們已經(jīng)提前做好了反爬蟲措施的準備。下一步將分析網(wǎng)頁的結構,提取網(wǎng)頁的數(shù)據(jù),這將在我們的下一篇文章中詳細說明。
/4 Summary /
本文的主要內(nèi)容是 *** 網(wǎng)站的基本介紹,然后簡單介紹了 *** 網(wǎng)站的反爬蟲措施。之后用抓包工具Fiddler來抓取這個網(wǎng)站的數(shù)據(jù)包。基于Python中的爬蟲庫請求,提前部署請求頭來模擬瀏覽器。下一篇文章將帶你了解網(wǎng)頁結構的分析和網(wǎng)頁數(shù)據(jù)的提取,敬請期待~ ~
關鍵詞: