最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)采集網(wǎng)站ip代理并檢測是否可用

 更新時間:2022年01月23日 10:03:04   作者:松鼠愛吃餅干  
這篇文章主要介紹了如何利用Python爬蟲實現(xiàn)采集網(wǎng)站ip代理,并檢測IP代理是否可用。文中的示例代碼講解詳細(xì),感興趣的可以試一試

開發(fā)環(huán)境

Python 3.8

Pycharm

模塊使用

requests >>> pip install requests

parsel >>> pip install parsel

代理ip結(jié)構(gòu)

proxies_dict = {
    "http": "http://" + ip:端口,
    "https": "http://" + ip:端口,
}

代碼實現(xiàn)步驟

1. 導(dǎo)入模塊

# 導(dǎo)入數(shù)據(jù)請求模塊
import requests  # 數(shù)據(jù)請求模塊 第三方模塊 pip install requests
# 導(dǎo)入 正則表達(dá)式模塊
import re  # 內(nèi)置模塊
# 導(dǎo)入數(shù)據(jù)解析模塊
import parsel  # 數(shù)據(jù)解析模塊 第三方模塊 pip install parsel  >>> 這個是scrapy框架核心組件

2. 發(fā)送請求

對于目標(biāo)網(wǎng)址發(fā)送請求 https://www.kuaidaili.com/free/

url = f'https://www.kuaidaili.com/free/inha/{page}/'  # 確定請求url地址
# 用requests模塊里面get 方法 對于url地址發(fā)送請求, 最后用response變量接收返回數(shù)據(jù)
response = requests.get(url)

3. 獲取數(shù)據(jù)

獲取服務(wù)器返回響應(yīng)數(shù)據(jù)(網(wǎng)頁源代碼)

print(response.text)

4. 解析數(shù)據(jù)

提取我們想要的數(shù)據(jù)內(nèi)容

解析數(shù)據(jù)方式方法:

  • 正則: 可以直接提取字符串?dāng)?shù)據(jù)內(nèi)容
  • xpath: 根據(jù)標(biāo)簽節(jié)點 提取數(shù)據(jù)內(nèi)容
  • css選擇器: 根據(jù)標(biāo)簽屬性提取數(shù)據(jù)內(nèi)容

哪一種方面用那種, 那是喜歡用那種

正則表達(dá)式提取數(shù)據(jù)內(nèi)容

正則提取數(shù)據(jù) re.findall() 調(diào)用模塊里面的方法

正則 遇事不決 .*? 可以匹配任意字符(除了換行符\n以外) re.S

ip_list = re.findall('<td data-title="IP">(.*?)</td>', response.text, re.S)
port_list = re.findall('<td data-title="PORT">(.*?)</td>', response.text, re.S)
print(ip_list)
print(port_list)

css選擇器

css選擇器提取數(shù)據(jù) 需要把獲取下來html字符串?dāng)?shù)據(jù)(response.text) 進(jìn)行轉(zhuǎn)換

# #list > table > tbody > tr > td:nth-child(1)
# //*[@id="list"]/table/tbody/tr/td[1]
selector = parsel.Selector(response.text) # 把html 字符串?dāng)?shù)據(jù)轉(zhuǎn)成 selector 對象
ip_list = selector.css('#list tbody tr td:nth-child(1)::text').getall()
port_list = selector.css('#list tbody tr td:nth-child(2)::text').getall()
print(ip_list)
print(port_list)

xpath 提取數(shù)據(jù)

selector = parsel.Selector(response.text) # 把html 字符串?dāng)?shù)據(jù)轉(zhuǎn)成 selector 對象
ip_list = selector.xpath('//*[@id="list"]/table/tbody/tr/td[1]/text()').getall()
port_list = selector.xpath('//*[@id="list"]/table/tbody/tr/td[2]/text()').getall()

提取ip

for ip, port in zip(ip_list, port_list):
    # print(ip, port)
    proxy = ip + ':' + port
    proxies_dict = {
        "http": "http://" + proxy,
        "https": "http://" + proxy,
    }
    print(proxies_dict)

5. 檢測ip質(zhì)量

try:
    response = requests.get(url=url, proxies=proxies_dict, timeout=1)
    if response.status_code == 200:
        print('當(dāng)前代理IP: ', proxies_dict,  '可以使用')
        lis_1.append(proxies_dict)
except:
    print('當(dāng)前代理IP: ', proxies_dict,  '請求超時, 檢測不合格')


print('獲取的代理IP數(shù)量: ', len(lis))
print('獲取可用的IP代理數(shù)量: ', len(lis_1))
print('獲取可用的IP代理: ', lis_1)

總共爬取了150個,最后測試出只有一個是能用的,所以還是付費的好

到此這篇關(guān)于Python實現(xiàn)采集網(wǎng)站ip代理并檢測是否可用的文章就介紹到這了,更多相關(guān)Python采集網(wǎng)站ip代理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Pandas對缺失值的處理方法

    Python Pandas對缺失值的處理方法

    這篇文章主要給大家介紹了關(guān)于Python Pandas對缺失值的處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python Pandas具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 利用Python爬蟲給孩子起個好名字

    利用Python爬蟲給孩子起個好名字

    每個人一生中都會遇到一件事情,在事情出現(xiàn)之前不會關(guān)心,但是事情一旦來臨就發(fā)現(xiàn)它極其重要,并且需要在很短的時間內(nèi)做出重大決定,那就是給自己的新生寶寶起個名字。下面這篇文章主要介紹了如何利用Python爬蟲給孩子起個好名字,需要的朋友可以參考下。
    2017-02-02
  • Python實現(xiàn)五子棋聯(lián)機對戰(zhàn)小游戲

    Python實現(xiàn)五子棋聯(lián)機對戰(zhàn)小游戲

    本文主要介紹了通過Python實現(xiàn)簡單的支持聯(lián)機對戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機對戰(zhàn)的五子棋小游戲。廢話不多說,快來跟隨小編一起學(xué)習(xí)吧
    2021-12-12
  • python游戲?qū)崙?zhàn)項目之智能五子棋

    python游戲?qū)崙?zhàn)項目之智能五子棋

    下五子棋嗎?信不信我讓你幾步你也贏不了?本篇為你帶來用python編寫的五子棋小游戲,文中給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值
    2021-09-09
  • Python實現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法示例

    Python實現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法示例

    這篇文章主要介紹了Python實現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法,結(jié)合實例形式總結(jié)分析了Python插入排序,冒泡排序,快速排序,選擇排序等算法的實現(xiàn)與使用技巧,需要的朋友可以參考下
    2019-05-05
  • python中的np.round()函數(shù)示例詳解

    python中的np.round()函數(shù)示例詳解

    np.round()是NumPy庫中的一個函數(shù),用于對數(shù)組或單個數(shù)值進(jìn)行四舍五入,該函數(shù)返回一個與輸入類型相同的數(shù)組或數(shù)值,并可以通過可選的參數(shù)來指定保留的小數(shù)位數(shù),這篇文章主要介紹了python中的np.round()函數(shù),需要的朋友可以參考下
    2024-06-06
  • Python3 利用face_recognition實現(xiàn)人臉識別的方法

    Python3 利用face_recognition實現(xiàn)人臉識別的方法

    這篇文章主要介紹了Python3 利用face_recognition實現(xiàn)人臉識別的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python read函數(shù)按字節(jié)(字符)讀取文件的實現(xiàn)

    Python read函數(shù)按字節(jié)(字符)讀取文件的實現(xiàn)

    這篇文章主要介紹了Python read函數(shù)按字節(jié)(字符)讀取文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 在python中實現(xiàn)求輸出1-3+5-7+9-......101的和

    在python中實現(xiàn)求輸出1-3+5-7+9-......101的和

    這篇文章主要介紹了在python中實現(xiàn)求輸出1-3+5-7+9-......101的和,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python 生成器需注意的小問題

    python 生成器需注意的小問題

    這篇文章主要介紹了python 生成器需注意的小問題,幫助大家更好的理解和學(xué)習(xí)python 生成器,感興趣的朋友可以了解下
    2020-09-09

最新評論

托里县| 河曲县| 霍林郭勒市| 西畴县| 额尔古纳市| 古交市| 皮山县| 同德县| 宜兴市| 新巴尔虎右旗| 九龙城区| 清徐县| 改则县| 桑日县| 万源市| 内江市| 甘孜县| 南陵县| 吉木萨尔县| 诏安县| 呼和浩特市| 凌海市| 福泉市| 邹平县| 孟州市| 山东| 鄂州市| 平湖市| 宣汉县| 曲周县| 罗田县| 陵川县| 济宁市| 扎鲁特旗| 昌宁县| 库伦旗| 镇平县| 泸定县| 环江| 长葛市| 芦山县|