欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python異步爬蟲requests和aiohttp中代理IP的使用

 更新時(shí)間:2022年03月02日 09:32:56   作者:Dream丶Killer  
本文主要介紹了Python異步爬蟲requests和aiohttp中代理IP的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

爬蟲要想爬的好,IP代理少不了?!,F(xiàn)在網(wǎng)站基本都有些反爬措施,訪問速度稍微快點(diǎn),就會發(fā)現(xiàn)IP被封,不然就是提交驗(yàn)證。下面就兩種常用的模塊來講一下代理IP的使用方式。話不多說,直接開始。

requests中代理IP的使用:

requests中使用代理IP只需要添加一個proxies參數(shù)即可。proxies的參數(shù)值是一個字典,key是代理協(xié)議(http/https),value就是ip和端口號,具體格式如下。

try:
    response = requests.get('https://httpbin.org/ip', headers=headers, 
    	proxies={'https':'https://221.122.91.74:9401'}, timeout=6)
    print('success')
    # 檢測代理IP是否使用成功
    # 第一種方式,返回發(fā)送請求的IP地址,使用時(shí)要在 get() 添加 stream = True
    # print(response.raw._connection.sock.getpeername()[0])
    # 第二種方式,直接返回測試網(wǎng)站的響應(yīng)數(shù)據(jù)的內(nèi)容
    print(response.text)
except Exception as e:
    print('error',e)

在這里插入圖片描述

注意: peoxieskey值(http/https)要和url一致,不然會直接使用本機(jī)IP直接訪問。

aiohttp中代理IP的使用:

由于requests模塊不支持異步,迫不得已使用aiohttp,掉了不少坑。
它的使用方式和requests相似,也是在get()方法中添加一個參數(shù),但此時(shí)的參數(shù)名為proxy,參數(shù)值是字符串,且字符串中的代理協(xié)議,只支持http,寫成https會報(bào)錯。
這里記錄一下我的糾錯歷程。。
首先根據(jù)網(wǎng)上的使用方式,我先試了一下下面的代碼。

async def func():
    async with aiohttp.ClientSession() as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers, 
            			proxy='http://183.220.145.3:80', timeout=6) as response:
                page_text = await response.text()
                print('success')
                print(page_text)
        except Exception as e:
            print(e)
            print('error')

if __name__=='__main__':
    asyncio.run(func())

在這里插入圖片描述

修改后,再來

async def func():
    con = aiohttp.TCPConnector(verify_ssl=False)
    async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers, 
            proxy='http://183.220.145.3:80', timeout=6) as response:
                # print(response.raw._connection.sock.getpeername()[0])
                page_text = await response.text()
                print(page_text)
                print('success')
        except Exception as e:
            print(e)
            print('error')

在這里插入圖片描述

非但沒有解決反倒多了一個警告,好在改一下就好。額~懶得粘了,直接來最終版本吧。。

# 修改事件循環(huán)的策略,不能放在協(xié)程函數(shù)內(nèi)部,這條語句要先執(zhí)行
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
async def func():
	# 添加trust_env=True
    async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False), trust_env=True) as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers,
             proxy='http://183.220.145.3:80', timeout=10) as response:
                page_text = await response.text()
                print(page_text)
                print('success')
        except Exception as e:
            print(e)
            print('error')

在這里插入圖片描述

雖然糾錯過程有點(diǎn)長,但好在知道怎么用了。

 到此這篇關(guān)于Python異步爬蟲requests和aiohttp中代理IP的使用的文章就介紹到這了,更多相關(guān)requests和aiohttp中代理IP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文教你掌握Python中Lambda表達(dá)式的5種實(shí)用技巧

    一文教你掌握Python中Lambda表達(dá)式的5種實(shí)用技巧

    在Python編程的宇宙里,有一個強(qiáng)大而靈活的工具經(jīng)常被高效的程序員所利用——那就是Lambda表達(dá)式,下面就讓我們深入了解Lambda表達(dá)式的妙用吧
    2024-01-01
  • Python列表reverse()函數(shù)使用方法詳解

    Python列表reverse()函數(shù)使用方法詳解

    這篇文章主要詳細(xì)介紹了Python列表reverse()函數(shù)使用方法,文章通過代碼示例講解的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-07-07
  • Opencv實(shí)現(xiàn)計(jì)算兩條直線或線段角度方法詳解

    Opencv實(shí)現(xiàn)計(jì)算兩條直線或線段角度方法詳解

    這篇文章主要介紹了Opencv實(shí)現(xiàn)計(jì)算兩條直線或線段角度方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • 詳解Python自帶的日期日歷處理calendar庫的使用

    詳解Python自帶的日期日歷處理calendar庫的使用

    在?Python?開發(fā)中,我們經(jīng)常需要處理日期和時(shí)間,雖然?datetime?庫是最常用的選擇,但其實(shí)?Python?標(biāo)準(zhǔn)庫中的?calendar?模塊也是一個強(qiáng)大的工具,下面我們就來看看它的具體使用吧
    2024-12-12
  • MindSpore導(dǎo)入CUDA算子的解決方案

    MindSpore導(dǎo)入CUDA算子的解決方案

    本文介紹了在MindSpore標(biāo)準(zhǔn)格式下進(jìn)行CUDA算子開發(fā)的方法和流程,可以讓開發(fā)者在現(xiàn)有的AI框架下仍然可以調(diào)用基于CUDA實(shí)現(xiàn)的高性能的算子,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Python文件路徑名的操作方法

    Python文件路徑名的操作方法

    對于文件路徑名的操作在編程中是必不可少的,比如說,有時(shí)候要列舉一個路徑下的文件,那么首先就要獲取一個路徑,再就是路徑名的一個拼接問題,通過字符串的拼接就可以得到一個路徑名。這篇文章主要介紹了Python中文件路徑名的操作,需要的朋友可以參考下
    2019-10-10
  • 基于Python制作一個多進(jìn)制轉(zhuǎn)換工具

    基于Python制作一個多進(jìn)制轉(zhuǎn)換工具

    這篇文章主要介紹了如何利用Python制作一個多進(jìn)制轉(zhuǎn)換工具,可以實(shí)現(xiàn)2進(jìn)制、4進(jìn)制、8進(jìn)制、10進(jìn)制、16進(jìn)制、32進(jìn)制直接的互轉(zhuǎn),需要的可以參考一下
    2022-02-02
  • Python使用python-can實(shí)現(xiàn)合并BLF文件

    Python使用python-can實(shí)現(xiàn)合并BLF文件

    python-can庫是 Python 生態(tài)中專注于 CAN 總線通信與數(shù)據(jù)處理的強(qiáng)大工具,本文將使用python-can為 BLF 文件合并提供高效靈活的解決方案,有需要的小伙伴可以了解下
    2025-07-07
  • 使用 Python 遍歷目錄樹的方法

    使用 Python 遍歷目錄樹的方法

    這篇文章主要介紹了使用 Python 遍歷目錄樹的方法,文中給大家提到了Python os.walk() 函數(shù)的相關(guān)知識,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-02-02
  • pandas的空數(shù)據(jù)處理方式

    pandas的空數(shù)據(jù)處理方式

    數(shù)據(jù)清洗是關(guān)鍵步驟,尤其是處理空數(shù)據(jù),Pandas提供.isna()識別、.dropna()刪除和填充函數(shù)(如使用平均值、中位數(shù)或眾數(shù))來處理數(shù)據(jù)集中的空值,以提高數(shù)據(jù)分析的準(zhǔn)確性,有效的空數(shù)據(jù)處理可以確保數(shù)據(jù)集的完整性和可靠性
    2024-09-09

最新評論