吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 804|回复: 0
收起左侧

[求助] asyncio 中的待理问题

[复制链接]
Wxylkxy 发表于 2021-8-24 21:48
直接上代码把  大体 就是 我如果在aiohttp中使用代{过}{滤}理 ,不管用几个,买代{过}{滤}理的平台就会显示我用了双倍个。 但是实测 线程池多线程什么的 都不会发生这种事。
刚刚使用 协程 不太懂。 哪里重复请求了? 还是写的不对。
[Python] 纯文本查看 复制代码
import requests
from lxml import etree

def proxy_pool():
    q = input('输入想从代{过}{滤}理池中取出多少ip?\n' )
    url = f'http://t.ipjldl.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty={q}&time=1&pro=&city=&port=1&format=txt&ss=1&css=&dt=1&specialTxt=3&specialJson=&usertype=14'
    headers = {
        'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                       'Chrome/91.0.4472.101 Safari/537.36')
    }
    page_text = requests.get(url=url, headers=headers).text
    tree = etree.HTML(page_text)
    proxy_list = tree.xpath('//body//text()')[0].split('\r\n')
    http_proxy = []  # 代{过}{滤}理池
    for proxy in proxy_list:
        dic = 'http://'+proxy
        http_proxy.append(dic)
        print(f'提取的代{过}{滤}理 : {dic}')
    return http_proxy

这是写的代{过}{滤}理池 从一个平台买的。
[Python] 纯文本查看 复制代码
import aiohttp
import asyncio
from proxy import proxy_pool
import random

async def crawl(session, url, proxy_auth):
    try:
        async with session.get(url=url, proxy=random.choice(proxy_list),proxy_auth=proxy_auth) as response:
            print(await response.text())
            print('success')

    except Exception as e:
        print(e)
        print('error')


async def main():
    async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
        proxy_auth = aiohttp.BasicAuth('xxxxx', 'xxxxx')
        url = 'https://httpbin.org/ip'
        tasks = [asyncio.create_task(crawl(session, url, proxy_auth=proxy_auth))]
        await asyncio.wait(tasks)

if __name__  == '__main__':
    proxy_list = proxy_pool()
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

问题 就是 比方说我这程序这里 提取 一个代{过}{滤}理。
我去平台查看 就会是 我使用了 两个。
不管怎么样都是双倍。 应该是异步的问题但我不知道怎么回事
我实测 用线程池就不会有这种情况。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Lucifer_BW + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表