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

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

 更新時(shí)間:2022年01月23日 10:03:04   作者:松鼠愛吃餅干  
這篇文章主要介紹了如何利用Python爬蟲實(shí)現(xiàn)采集網(wǎng)站ip代理,并檢測(cè)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:端口,
}

代碼實(shí)現(xiàn)步驟

1. 導(dǎo)入模塊

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

2. 發(fā)送請(qǐng)求

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

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

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

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

print(response.text)

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

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

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

  • 正則: 可以直接提取字符串?dāng)?shù)據(jù)內(nèi)容
  • xpath: 根據(jù)標(biāo)簽節(jié)點(diǎn) 提取數(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 對(duì)象
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 對(duì)象
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. 檢測(cè)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,  '請(qǐng)求超時(shí), 檢測(cè)不合格')


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

總共爬取了150個(gè),最后測(cè)試出只有一個(gè)是能用的,所以還是付費(fèi)的好

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

相關(guān)文章

  • Python Pandas對(duì)缺失值的處理方法

    Python Pandas對(duì)缺失值的處理方法

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

    利用Python爬蟲給孩子起個(gè)好名字

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

    Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲

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

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

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

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

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

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

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

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

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

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

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

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

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

    python 生成器需注意的小問題

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

最新評(píng)論

稷山县| 商洛市| 右玉县| 柞水县| 文安县| 从化市| 涟水县| 图们市| 合川市| 岑巩县| 集安市| 河津市| 页游| 宜兴市| 长沙县| 泰和县| 涪陵区| 汉川市| 宁化县| 永兴县| 黄骅市| 铁力市| 五指山市| 桂阳县| 凤山县| 新昌县| 文登市| 项城市| 江门市| 新乐市| 涟水县| 沙湾县| 锡林郭勒盟| 宁阳县| 比如县| 德格县| 五峰| 阿拉善盟| 邻水| 武邑县| 崇礼县|