亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:蟲蟲下載站 > 資源下載 > 源碼 > python爬蟲獲取大量免費有效代理ip--有效防止ip被封

python爬蟲獲取大量免費有效代理ip--有效防止ip被封

  • 資源大小:18 K
  • 上傳時間: 2019-11-15
  • 上傳用戶:fygwz1982
  • 資源積分:2 下載積分
  • 標      簽: python ip 代理 防止

資 源 簡 介

以后再也不用擔心寫爬蟲ip被封,不用擔心沒錢買代理ip的煩惱了
在使用python寫爬蟲時候,你會遇到所要爬取的網站有反爬取技術比如用同一個IP反復爬取同一個網頁,很可能會被封。如何有效的解決這個問題呢?我們可以使用代理ip,來設置代理ip池。

現在教大家一個可獲取大量免費有效快速的代理ip方法,我們訪問西刺免費代理ip網址
這里面提供了許多代理ip,但是我們嘗試過后會發現并不是每一個都是有效的。所以我們現在所要做的就是從里面提供的篩選出有效快速穩定的ip。

以下介紹的免費獲取代理ip池的方法:
優點:免費、數量多、有效、速度快
缺點:需要定期篩選

主要思路:

從網址上爬取ip地址并存儲
驗證ip是否能使用-(隨機訪問網址判斷響應碼)
格式化ip地址
代碼如下:

1.導入包

import requests
from lxml import etree
import time
1
2
3
2.獲取西刺免費代理ip網址上的代理ip

def get_all_proxy():
    url = 'http://www.xicidaili.com/nn/1'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    }
    response = requests.get(url, headers=headers)
    html_ele = etree.HTML(response.text)
    ip_eles = html_ele.xpath('//table[@id="ip_list"]/tr/td[2]/text()')
    port_ele = html_ele.xpath('//table[@id="ip_list"]/tr/td[3]/text()')
    proxy_list = []
    for i in range(0,len(ip_eles)):
        proxy_str = 'http://' + ip_eles[i] + ':' + port_ele[i]
        proxy_list.append(proxy_str)
    return proxy_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
3.驗證獲取的ip

def check_all_proxy(proxy_list):
    valid_proxy_list = []
    for proxy in proxy_list:
        url = 'http://www.baidu.com/'
        proxy_dict = {
            'http': proxy
        }
        try:
            start_time = time.time()
            response = requests.get(url, proxies=proxy_dict, timeout=5)
            if response.status_code == 200:
                end_time = time.time()
                print('代理可用:' + proxy)
                print('耗時:' + str(end_time - start_time))
                valid_proxy_list.append(proxy)
            else:
                print('代理超時')
        except:
            print('代理不可用--------------->'+proxy)
    return valid_proxy_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4.輸出獲取ip池

if __name__ == '__main__':
    proxy_list = get_all_proxy()
    valid_proxy_list = check_all_proxy(proxy_list)
    print('--'*30)
    print(valid_proxy_list)
1
2
3
4
5
技術能力有限歡迎提出意見,保證積極向上不斷學習
————————————————
版權聲明:本文為CSDN博主「彬小二」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_39884947/article/details/86609930

相 關 資 源

主站蜘蛛池模板: 左贡县| 武夷山市| 蛟河市| 密山市| 上饶县| 保山市| 连城县| 岐山县| 新和县| 盐山县| 成安县| 乌审旗| 鹤壁市| 潜山县| 蒲江县| 县级市| 常宁市| 武城县| 观塘区| 洱源县| 昌都县| 名山县| 平邑县| 大埔县| 鹤山市| 祁门县| 克东县| 库伦旗| 安龙县| 五家渠市| 怀集县| 阆中市| 东方市| 合江县| 遂平县| 陈巴尔虎旗| 古丈县| 台南县| 昌平区| 建瓯市| 新郑市|