如何解决aiohttp-socks create_connection可以为每个请求切换TOR IP
我正试图从一个URL下载2万个页面,并且我需要我的IP每隔两千(或大约)个请求进行切换,以免出现ssl错误或“被淘汰”
我目前求助于一次要问两千页的问题,这可想而知。
我的代码显示为:
for cnt,ticker in enumerate(sif_df["ticker"][begloc_int:endloc_int]):
composite_urlstr = urlstr + ticker + suffix_urlstr
#print(composite_urlstr)
html_list.append(fetch(session,composite_urlstr))
soups = await asyncio.gather(*html_list)
所以我现在手动更改begloc_int和endloc_int
我正在考虑添加以下内容:
if cnt % 200 == 0:
switchIP()
但是我拥有的swithcIP()版本适用于常规Tor请求,而不是异步请求。
有人告诉我,我可以使用的是aiohttp-socks create_connection,但是我不知道该怎么做,而在github条目上查找并没有太多说明,因为没有示例。我认为create_connection需要在fetch函数中发生,但我根本不知道。
async def fetch(session,url):
# Somewhere in here stick in a create_connection
# with async_timeout.timeout(10):
async with session.get(url) as response:
return BeautifulSoup(await response.text(),"html.parser")
如果有人知道该怎么做,我将非常感谢您的帮助。
非常感谢您
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。