Гуглил долго, а до сих пор не могу понять, в чём ошибка?
Выдаёт кучу строк с ошибками, вот одна из них: AttributeError: 'NoneType' object has no attribute 'find_all'
Можете попробовать сами вставить этот код.
Я пытаюсь ускорить парсинг сайта по категориям, и я пока что новичок в этой теме, пытаюсь разобраться. Буду очень благодарен если сможете помочь
Вот код:
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import asyncio
import aiohttp
async def get_page_data(session, page):
HEADERS = {"User-Agent": UserAgent().random}
url = f"https://biggeek.ru/catalog/apple?page={page}"
async with session.get(url=url, headers=HEADERS) as response:
response_text = await response.text()
soup = BeautifulSoup(response_text, "lxml")
items = soup.find("div", class_="catalog-content__prods-list").find_all("div", class_="catalog-card")
for j in items:
try:
name = j.find("a", class_="catalog-card__title cart-modal-title").text.strip()
except:
name = "Нет такого названия"
try:
price = j.find('b', class_="cart-modal-count").text.strip()
except:
price = "Нет такой цены"
O = []
O = name
if O.count("Обложка Apple Smart Folio для iPad Pro 12,9 дюйма (дизайн 2022)") == 1:
n = (name + "\n" + price)
print(n)
async def gather_data():
HEADERS = {"User-Agent": UserAgent().random}
url = "https://biggeek.ru/catalog/apple"
async with aiohttp.ClientSession() as session:
response = await session.get(url=url, headers=HEADERS)
soup = BeautifulSoup(await response.text(), "lxml")
pages_count = int(
soup.find("div", class_="prod-pagination").find_all("a", class_="prod-pagination__item")[-1].text)
tasks = []
for page in range(1, pages_count + 1):
task = asyncio.create_task(get_page_data(session, page))
tasks.append(task)
await asyncio.gather(*tasks)
def main():
asyncio.run(gather_data())
if __name__ == "__main__":
main()