爬虫 -- aiohttp解决证书错误以及使用代理

此代码示例展示了如何利用Python的aiohttp库进行异步HTTP请求,同时结合基本认证和代理。代码中定义了一个获取随机代理的函数,并在请求时应用了这些代理和认证信息。主要涉及异步编程、HTTP请求、代理使用及基本认证。
摘要由CSDN通过智能技术生成

前言

  • 以静态代理演示
  • 下方代码中的代理皆无效

代码


# -*- coding: utf-8 -*-
# @Author   : zbz

import asyncio
import random

import aiohttp
from aiohttp import TCPConnector

username = "账号"
password = "密码"
proxy_auth = aiohttp.BasicAuth(username, password)


def get_proxy():
    proxies = [
        "http://113.2206.73.45:888",
        "http://124.21.73.13:888",
        "http://135.340.12.2512:888",
    ]
    return random.choice(proxies)


async def parse(url, delay):
    async with aiohttp.ClientSession(connector=TCPConnector(ssl=False)) as session:
        async with session.get(url, proxy=get_proxy(), proxy_auth=proxy_auth, timeout=3) as resp:
            print("start...")
            await asyncio.sleep(delay)
            html = await resp.text()
            print("end...")
            return delay, len(html)


async def run():
    url = "https://www.baidu.com"
    tasks = [
        asyncio.create_task(parse(url, delay))
        for delay in range(5)
    ]

    for coro in asyncio.as_completed(tasks):
        result = await coro
        print(result)


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值