Как парсить количество объявлений у продавца на олх?

Задача в том чтобы парсить страницы поиска олх, получать названия товара - цену, парсить объявления и получать ссылки на профили продавцов и по ссылке продавцов парсить количество объявлений
from bs4 import BeautifulSoup
import requests

URL = 'https://www.olx.pt/tecnologia-e-informatica/'
HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}

offer = []
user_link = []
offer_in_user = []


def parse():
    response = requests.get(URL, headers=HEADERS)
    soup = BeautifulSoup(response.content, 'html.parser')
    # получаем все "офферы" на странице
    items = soup.findAll('div', class_='offer-wrapper')
    #

    for item in items:
        # исключаем обьявления которые с олх доставкой
        olx_ship = item.find('span', class_='promo-label promo-label--ctt inlblk rel')
        if olx_ship:
            pass
        else:
            try:

                title = item.find('a', class_='marginright5 link linkWithHash detailsLink').get_text(
                    strip=True)  # запись названия
                price = item.find('p', class_='price').get_text(strip=True)  # запись  цены
                link = item.find('a', class_='marginright5 link linkWithHash detailsLink').get('href')  # запись ссылки
                city = item.find('small', class_='breadcrumb x-normal').find_next('span').get_text(
                    strip=True)  # запись города
                comps = {
                    'title': title,
                    'price': price,
                    'link': link,
                    'city': city,
                }
                offer.append(comps)
            except:
                pass
    # получение ссылок на пользователя
    for user in offer:
        r = requests.get(user['link'], headers=HEADERS)
        soup = BeautifulSoup(r.text, 'html.parser')

        try:
            # ищем ссылку на профиль
            userx = soup.find('a', class_='userbox__image-link').get('href')
            users = {
                'user': userx
            }
            user_link.append(users)
        except:
            users = {
                'user': ''
            }
            user_link.append(users)


parse()


вот код который парсит все это кроме, количества объявлений продавца, при парсинге оно либо выдает ошибку (наверное много запросов с одного ip) или выдает количеств объявлений в сумме со всех продавцов, а не отдельно каждого
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы