极品少妇一区二区三区精品视频,国内精品免费午夜毛片,亚洲欧美电影一区二区,麻豆一区二区

代理IP池如何維護

在爬取數據的時候,遇到了IP被封殺的情況。為了順利開展工作,會選用代理IP,以下分享爬蟲工作經驗,全球HTTP對代理IP池的維護提供一些見解。

IP代理
在使用代理ip之前,需要先了解:

一:對返回ip格式的操作

json格式的數據可以直接請求后返回json數據進行操作包過提取,刪除,增加。當然,在實際使用ip代理的時候好先在瀏覽器中請求一次,復制下來新建一個py文件練習對其操作。

二:ip的有效期

現在大部分的ip代理都是有有效期的,1-5分鐘的有效期當ip失效后你需要將此ip從ip池中刪除。當ip不夠的時候又要引入新的ip添加到當前的ip池中。要動態維護ip池。

三:python3使用代理ip的方式

以前我的python3使用代理ip也有格式,你爬取的是http用http,是https用https就行。

四:異常處理

再寫爬蟲的時候一定要對所有可能產生異常的操作進行try except的異常處理。異常又要注意是否為超時異常,還是ip不可用,過期的異常,還是操作dom樹的時候產生的異常。不同的異常要采用不同的策略。(可用狀態碼,全局變量判斷)。

五:分析目標網站對ip的需求

你需要設置ip池的小和請求ip的個數不至于太大或太小,可以預先測試。打個比方你爬的網站同一個時段10個ip更換就不夠了。你不至于開100個ip去爬吧,ip過期而沒咋么用就是對資源的浪費。

解決方向:

先寫個小程序操作返回的json數據測試。

設置全局的列表ipdate[],全局的一個msg{}字典(其實字典就是列表中隨機選的一個ip和端口,只不過通過記錄標記可以很好的進行刪除操作)。

將請求ip的操作添加到全局列表(數組)中寫成一個loadip()函數,以便判斷ip不夠時候即使添加(列表extend方法了解下,不是append)。

寫一個隨機選ip的函數getproxies(),更換proxies{}里面的內容。同時msg也要更換。注意python函數改變全局變量需要在函數里先global msg聲明。每次進行http(s)請求前執行一次更新操作。

所有的操作都在try excpet操作,對不同的異常采用不同處理。比如(有的因為ip異常沒爬到需要從爬,而有的因為dom結構異常就需要跳過)。

當然實際處理可能會遇到各種問題,比如頁面跳轉重定向,ssl證書,有的網站也會卡瀏覽器名稱,或者cookie。這里不做過多介紹了。

主站蜘蛛池模板: 肥乡县| 云龙县| 连州市| 离岛区| 临桂县| 泗洪县| 政和县| 宜宾市| 晋宁县| 襄城县| 莱阳市| 吉林省| 额济纳旗| 荃湾区| 吉安市| 自贡市| 颍上县| 洛川县| 鄂托克旗| 隆安县| 嫩江县| 亳州市| 射阳县| 商城县| 彭州市| 广水市| 涟源市| 枣阳市| 胶南市| 阿鲁科尔沁旗| 沙坪坝区| 余干县| 米泉市| 莱西市| 凤冈县| 滦平县| 江永县| 巧家县| 大港区| 新疆| 成武县|