
800819103
在線客服,實時響應
qq群
在線客服,實時響應
客服電話
13318873961
用網絡爬蟲爬取網上平臺的信息內容經常會碰到的問題是,你的網絡爬蟲行為被另一方識別了,另一方把你的IP屏蔽掉,返回不了正常的網絡數據給你。那么這時就必須運用代理IP來偽裝你的請求了。但這代理IP如何來的呢?爬蟲怎么獲取可用IP,這是個問題,現在最常見的方法是在網絡上抓取IP,并進行驗證,可用的IP保存后進行調用。
一、爬蟲怎么獲取可用IP
1.請求網頁頁面數據
請求網頁頁面數據是用到requests庫去做網絡請求的,填寫url,和header頭部信息內容,運用get請求方法去請求,獲得response相應后,返回response.text即是響應的文本內容,即網頁文本內容。
2.解析網頁頁面數據
返回正確的網頁數據之后,就可以開始對它開展解析了,在這里運用BeautifulSoup庫進行網頁內容解析。假如是Chrome瀏覽器,按f12可以查詢網頁源碼。
尋找某個tr行,第1個和第2個td列就是是ip和端口信息,于是我們還可以用BeautifulSoup查找所以的tr行,再搜索該tr行的第1個和第2個td列即可以獲取該頁面上所有的ip和端口信息了。
3.驗證IP和端口是不是可用
解析到網頁頁面上的所有ip和端口信息后,還必須驗證它是否是有效的,之后對它們開展過濾,獲得有效的ip列表。驗證方式也是使用它作為代理地址,去請求網絡,看是不是能請求完成,假如請求成功,表明是有效的。這樣的話,這兒必須添加超時時間,以防止等待時間太長,在這里設置超時時間為5秒。
4.發起請求,存放可用IP和端口信息
二、爬蟲怎么調用代理IP
1.開Python3,導入urllib的request,調用ProxyHandler,它可以接收代理IP的參數。
2.把IP地址以字典的形式放入其中,設置鍵為http,當然有些是https的,之后后面就是IP地址以及端口號,實際看你的IP地址是什么類型的,不一樣IP端口號可能不一樣。
3.用build_opener()來構建一個opener對象。
4.調用構建好的opener對象里面的open方法來發生請求。事實上urlopen也是類似那樣使用內部定義好的opener.open(),在這里就相當于我們自己重寫。假如我們使用install_opener(),就可以把之前自定義的opener設置成全局的。
5.設置成全局以后,假如我們再運用urlopen來發送請求,那么發送請求使用的IP地址就是代理IP,而不是本機的IP地址了。
上文介紹了爬蟲怎么獲取可用IP的方法,并且介紹了爬蟲怎么調用代理IP的方法,了解這兩點之后,建議進行實戰,這些可用很好的掌握突破IP限制的方法。