Столкнулся с проблемой мне не понятной: при выполнении запроса с requests(с сессией или без) запрос проходит нормально, в тоже время при выполнении запроса с помощью aiohttp ответ приходит 403. Ниже мвп для проверки(куки и заголовки можете подставить свои:
import requests
import aiohttp
import asyncio
from bs4 import BeautifulSoup, ResultSet, Tag
cookies = {}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8',
'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Referer': 'https://www.vseinstrumenti.ru/brand/bosch-3/',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'Priority': 'u=0, i',
}
session = requests.Session()
resp = session.get('https://www.vseinstrumenti.ru/brand/bosch-3/page1/', cookies=cookies, headers=headers)
assert resp.status_code == 200
def parse(text):
soup = BeautifulSoup(text, features='lxml')
items: ResultSet[Tag] = soup.find(
'div', id='product-listing-top'
).find(
'div', attrs={'data-qa': 'listing'}
).find_all('div', attrs={'data-qa': 'products-tile'})
print(items)
print('REQUESTS')
parse(resp.text)
# print(resp.headers)
# print(resp.cookies)
async def gd():
async with aiohttp.ClientSession(
'https://www.vseinstrumenti.ru',
cookies=cookies,
headers=headers
) as session:
async with session.get('/brand/bosch-3/page1/', cookies=cookies, headers=headers) as resp:
print(resp.status)
resp = await resp.text()
return resp
async def main():
data = await gd()
parse(data)
print('AIOHTTP')
asyncio.run(main())
В чем может быть проблема?