В общем, код на aiohttp получает 403 ответ, я так понимаю блокировка cloudflare, но почему-то синхронный код на reqeusts получает 200 ответ, не понимаю с чем это связано. Использую базу юзерагентов + базу прокси. сайт
https://vseinstrumenti.ru
import asyncio
import aiohttp
from bs4 import BeautifulSoup
import random
with open('urllist.txt', 'r') as urlfile:
urls = [line.strip() for line in urlfile]
with open('proxies.txt', 'r') as prx_file:
proxies = [line.strip() for line in prx_file.readlines()]
with open('useragents.txt', 'r') as agents:
user_agents = [line.strip() for line in agents.readlines()]
def get_user():
useragent = random.choice(user_agents)
return {'User-Agent': useragent}
def get_proxy():
proxy = random.choice(proxies)
return f'http://{proxy}'
async def get_data(session, url):
async with session.get(url, headers=get_user(), proxy=get_proxy()) as response:
response_text = await response.text()
soup = BeautifulSoup(response_text, 'lxml')
try:
sku = soup.find('div', class_='kZIDtu') # артикул
print(f'Артикул >>> {sku.span.get_text()}')
except:
print(response_text)
async def get_tasks():
async with aiohttp.ClientSession() as session:
tasks = []
for url in urls:
task = asyncio.create_task(get_data(session, url))
tasks.append(task)
await asyncio.gather(*tasks)
asyncio.run(get_tasks())
upd: добавил tcpconnector(ssl=false) и иногда начали проходить 200 респонсы, но почему то без использования прокси, если я использую прокси == 403, если нет == 200, но не на всех запросах