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

解決python異步框架aiohttp無法使用本地代理問題

 更新時間:2024年07月18日 09:06:54   作者:FOAF-lambda  
這篇文章主要介紹了解決python異步框架aiohttp無法使用本地代理問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題

  • aiohttp 在全局代理模式下無法訪問墻外的網(wǎng)址,而requests可以
  • aiohttp不支持https代理,無論訪問的網(wǎng)址是http還是https,使用代理是字符串proxy='http://127.0.0.1:10080'
import aiohttp
import asyncio
headers = {
        'User-Agent': "mozilla/5.0 (windows nt 6.1; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/69.0.3494.0 safari/537.36",
}
async def fetch(session,url):
    async with session.get(url=url,headers=headers,timeout=50,verify_ssl=False,proxy='http://127.0.0.1:10080') as resposne:
        print(resposne.status)
        return await resposne.text()
async def main():
    async with aiohttp.ClientSession() as session:
        url='https://www.google.com'
        html = await fetch(session,url)
        print(html)
loop = asyncio.get_event_loop()
loop.run_until_complete(main()) 
  • 當(dāng)session.get里面不傳入proxy時
  • 會根據(jù)ClientSession里面的一個參數(shù)叫trust_env是否為True來使用本地代理
  • 但源碼中的使用條件是
elif self._trust_env:
    for scheme, proxy_info in proxies_from_env().items():
        if scheme == url.scheme:
            proxy = proxy_info.proxy
            proxy_auth = proxy_info.proxy_auth
            break
  • scheme == url.scheme 這個條件阻擋了請求https網(wǎng)址
  • aiohttp不支持https代理
  • 所以這是一個矛盾的地方

解決方式1

  • 修改源碼
  • 對scheme == url.scheme這個條件進(jìn)行修改
  • 并且在aiohttp.ClientSession(trust_env=True)傳入trust_env=True
  • 這種方式不提倡

解決方式2

  • 獲取本地代理
  • 然后在沒有代理時在session.get使用本地代理
def get_local_proxy():
    
    from urllib.request import getproxies
    proxy = getproxies()['http']
    #proxies = {'http': 'http://127.0.0.1:10809', 'https': 'http://127.0.0.1:10809'}
    proxies = {'http': proxy , 'https': proxy}
    return proxies

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python3監(jiān)控CentOS磁盤空間腳本

    python3監(jiān)控CentOS磁盤空間腳本

    這篇文章主要為大家詳細(xì)介紹了Python3監(jiān)控CentOS磁盤空間腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Django原生sql也能使用Paginator分頁的示例代碼

    Django原生sql也能使用Paginator分頁的示例代碼

    這篇文章主要介紹了Django原生sql也能使用Paginator分頁的示例代碼,主要使用了count和__getslice__,有興趣的可以了解一下
    2017-11-11
  • python實現(xiàn)郵件自動發(fā)送

    python實現(xiàn)郵件自動發(fā)送

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)郵件自動發(fā)送,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù)示例

    python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù)示例

    這篇文章主要介紹了python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù),結(jié)合實例形式Fenix了python3 BeautifulSoup模塊進(jìn)行數(shù)據(jù)的抓取相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Python如何通過手肘法實現(xiàn)k_means聚類詳解

    Python如何通過手肘法實現(xiàn)k_means聚類詳解

    K-means聚類算法是一種常見的無監(jiān)督學(xué)習(xí)算法,用于將數(shù)據(jù)集分成k個不同的簇,下面這篇文章主要給大家介紹了關(guān)于Python如何通過手肘法實現(xiàn)k_means聚類的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • numpy使用技巧之?dāng)?shù)組過濾實例代碼

    numpy使用技巧之?dāng)?shù)組過濾實例代碼

    這篇文章主要介紹了numpy使用技巧之?dāng)?shù)組過濾實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • numpy求平均值的維度設(shè)定的例子

    numpy求平均值的維度設(shè)定的例子

    今天小編就為大家分享一篇numpy求平均值的維度設(shè)定的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測可以)

    jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測可以)

    安裝Anaconda后,新建文件的默認(rèn)存儲路徑一般在C系統(tǒng)盤,那么路徑是什么呢?如何更改jupyter notebook保存文件默認(rèn)路徑呢?今天小編就這一問題通過兩種方法給大家講解,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • Python關(guān)鍵字yield的用法詳解

    Python關(guān)鍵字yield的用法詳解

    在Python編程中,有一個強(qiáng)大而神秘的關(guān)鍵字,那就是yield,初學(xué)者常常被它搞得暈頭轉(zhuǎn)向,而高級開發(fā)者則借助它實現(xiàn)高效的代碼,到底yield是什么?它又是如何在Python代碼中發(fā)揮作用的呢?讓我們一起來揭開它的面紗
    2024-07-07
  • Python實現(xiàn)獲取某天是某個月中的第幾周

    Python實現(xiàn)獲取某天是某個月中的第幾周

    這篇文章主要介紹了Python實現(xiàn)獲取某天是某個月中的第幾周,本文代碼實現(xiàn)獲取指定的某天是某個月中的第幾周、周一作為一周的開始,需要的朋友可以參考下
    2015-02-02

最新評論