网页在线代理 在线代理网址
时间:2023-04-30 06:59/span>
作者:tiger
分类:
新知
浏览:4450
评论:0
使用提示
1.基于aiohttp的代码样例支持访问http,http网页
2.aiohttp不是python原生库,需要安装才能使用: pip install aiohttp
3.aiohttp只支持Python3.5及以上
4.如Windows系统使用aiohttp访问http网站抛出异常,在import asyncio后调用 asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())即可解决。
- !/usr/bin/env python
- -*- coding: utf-8 -*-
- &34;&34;&34;
- 使用aiohttp请求代理服务器
- 请求http和http网页均适用
- &34;&34;&34;
- import random
- import asyncio
- asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) windows系统请求http网站报错时调用此方法
- import aiohttp
- import requests
- page_url = &34;http://icanhazip.com/origin/&34; 要访问的目标网页
- API接口,返回格式为json
- api_url = &34;http://dps.kdlapi.com/origin/api/getdps/?orderid=9266892014xxxxx&signature=xxxxx&num=5&pt=1&format=json&sep=1&34; API接口
- API接口返回的proxy_list
- proxy_list = requests.get(api_url).json().get(&39;data&39;).get(&39;proxy_list&39;)
- 用户名密码认证(私密代理/独享代理)
- username = &34;username&34;
- password = &34;password&34;
- proxy_auth = aiohttp.BasicAuth(username, password)
- async def fetch(url):
- async with aiohttp.ClientSession() as session:
- async with session.get(url, proxy=&34;http://&34; + random.choice(proxy_list), proxy_auth=proxy_auth) as resp:
- content = await resp.read()
- print(f&34;status_code: {resp.status}, content: {content}&34;)
- def run():
- loop = asyncio.get_event_loop()
- 异步发出5次请求
- tasks = [fetch(page_url) for _ in range(5)]
- loop.run_until_complete(asyncio.wait(tasks))
- if __name__ == &39;__main__&39;:
- run()