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

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

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

爬蟲要想爬的好,IP代理少不了。?,F(xiàn)在網(wǎng)站基本都有些反爬措施,訪問速度稍微快點,就會發(fā)現(xiàn)IP被封,不然就是提交驗證。下面就兩種常用的模塊來講一下代理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地址,使用時要在 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一致,不然會直接使用本機IP直接訪問。

aiohttp中代理IP的使用:

由于requests模塊不支持異步,迫不得已使用aiohttp,掉了不少坑。
它的使用方式和requests相似,也是在get()方法中添加一個參數(shù),但此時的參數(shù)名為proxy,參數(shù)值是字符串,且字符串中的代理協(xié)議,只支持http,寫成https會報錯。
這里記錄一下我的糾錯歷程。。
首先根據(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')

在這里插入圖片描述

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

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

相關(guān)文章

  • Python中的文件定位方式

    Python中的文件定位方式

    這篇文章主要介紹了Python中的文件定位方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 自己使用總結(jié)Python程序代碼片段

    自己使用總結(jié)Python程序代碼片段

    這篇文章主要介紹了自己使用總結(jié)Python程序代碼片段,本文收集了如反向讀取文件、往文件中所有添加指定的前綴、匿名函數(shù)作為返回值、將二進制數(shù)轉(zhuǎn)為10進制數(shù)等實用代碼片段,需要的朋友可以參考下
    2015-06-06
  • python代碼實現(xiàn)AVL樹和紅黑樹

    python代碼實現(xiàn)AVL樹和紅黑樹

    專注于Python數(shù)據(jù)結(jié)構(gòu),想要深入了解AVL樹和紅黑樹的讀者們,你們的機會來了!在這篇指南中,我們將帶你探索這兩種神奇樹結(jié)構(gòu)的奧秘,緊張刺激的實戰(zhàn)代碼演示,讓你一窺這兩種樹的獨特魅力,準備好了嗎?讓我們一起踏上這場Python樹結(jié)構(gòu)之旅!
    2023-12-12
  • Python+matplotlib調(diào)用隨機函數(shù)生成變化圖形

    Python+matplotlib調(diào)用隨機函數(shù)生成變化圖形

    這篇文章主要介紹了如何在Python中利用隨機函數(shù)生成變化的圖形,文中的示例代碼講解詳細,對我們學(xué)習(xí)有一定吧參考價值,需要的可以了解一下
    2022-04-04
  • Python3 A*尋路算法實現(xiàn)方式

    Python3 A*尋路算法實現(xiàn)方式

    今天小編就為大家分享一篇Python3 A*尋路算法實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python3 pandas.concat的用法說明

    Python3 pandas.concat的用法說明

    這篇文章主要介紹了Python3 pandas.concat的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 解決Jupyter Notebook開始菜單欄Anaconda下消失的問題

    解決Jupyter Notebook開始菜單欄Anaconda下消失的問題

    這篇文章主要介紹了解決Jupyter Notebook開始菜單欄Anaconda下消失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python異常處理:try、except、else、finally的全面解析

    Python異常處理:try、except、else、finally的全面解析

    在Python中,異常是程序在運行時發(fā)生的錯誤,當Python解釋器遇到一個它不能處理的錯誤時,它會拋出一個異常,異常處理的主要目的是在程序遇到錯誤時,提供一種方法來處理這些錯誤,而不是簡單地讓程序崩潰,本文介紹了Python異常處理:try、except、else、finally的全面解析
    2024-07-07
  • Python 文本文件內(nèi)容批量抽取實例

    Python 文本文件內(nèi)容批量抽取實例

    今天小編就為大家分享一篇Python 文本文件內(nèi)容批量抽取實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 使用 Python 和 OpenCV 實現(xiàn)攝像頭人臉檢測并截圖功能

    使用 Python 和 OpenCV 實現(xiàn)攝像頭人臉檢測并截圖功能

    在現(xiàn)代應(yīng)用中,人臉檢測是一項非常重要的技術(shù),廣泛應(yīng)用于安全監(jiān)控、身份驗證等領(lǐng)域,本文詳細介紹了如何使用 Python 和 OpenCV 庫實現(xiàn)攝像頭人臉檢測并截圖,并通過具體的代碼示例展示了整個過程,感興趣的朋友一起看看吧
    2024-11-11

最新評論