Парсер парсит только первые 5 URL картинок, а дальше /app/static/media/no_thumbnail.c222b0530.svg, что делать?

Ссылка скопирована
17 февраля 2026 1 ответ
import requests from bs4 import BeautifulSoup as BS  all_data = []  for page_number in range(1, 6):      url = f"https://www.olx.kz/transport/?page={page_number}"     r = requests.get(url)     html = BS(r.content, 'html.parser')      all_data.append(f"nnСтраница {page_number}n{'='*50}n")      for el in html.select(".css-1sw7q4x"):         title = el.select('.css-u2ayx9 > h6')         price = el.select('.css-u2ayx9 > p')         img = el.find('img')          try:             title_text = title[0].text.strip()             price_text = price[0].text.strip()         except IndexError:             title_text = "No title"             price_text = "No price"          if img and 'src' in img.attrs:             img_url = img['src']         elif img and 'data-src' in img.attrs:  # Добавляем обработку атрибута data-src             img_url = img['data-src']         else:             img_url = 'No image'          all_data.append(f"Название: {title_text}nЦена: {price_text}nURL картинки: {img_url}n")  with open("titles.txt", 'w', encoding='utf-8') as f:     for data in all_data:         f.write(data)  print("Данные были извлечены и сохранены в файл titles.txt")

import requests from bs4 import BeautifulSoup as BS all_data = [] for page_number in range(1, 6): url = f"https://www.olx.kz/transport/?page={page_number}" r = requests.get(url) html = BS(r.content, 'html.parser') all_data.append(f"nnСтраница {page_number}n{'='*50}n") for el in html.select(".css-1sw7q4x"): title = el.select('.css-u2ayx9 > h6') price = el.select('.css-u2ayx9 > p') img = el.find('img') try: title_text = title[0].text.strip() price_text = price[0].text.strip() except IndexError: title_text = "No title" price_text = "No price" if img and 'src' in img.attrs: img_url = img['src'] elif img and 'data-src' in img.attrs: # Добавляем обработку атрибута data-src img_url = img['data-src'] else: img_url = 'No image' all_data.append(f"Название: {title_text}nЦена: {price_text}nURL картинки: {img_url}n") with open("titles.txt", 'w', encoding='utf-8') as f: for data in all_data: f.write(data) print("Данные были извлечены и сохранены в файл titles.txt")

Парсит URL картинок только у первых 5-ти объявлений, далее /app/static/media/no_thumbnail.c222b0530.svg, как пофиксить и что бы парсило все URL ?

Дополнительно:

requests парсит лишь первый ответ сервера и не может в динамический контент.

что делать?

Не использовать requests для парсинга, а использовать selenium.

  • selenium открывает же браузер, разве получиться реализовать на хосте?
  • zaxece09,

    selenium открывает же браузер

    Использует, да.

    разве получиться реализовать на хосте?

    Зависит от хостинга.

Ответы:

Скорее всего там динамическая подгрузка изображений. Для первых пяти сразу, а дальше - при скролле страницы.

  • А никак нельзя это обойти ?
  • zaxece09, выше написали. Используется инструменты моделирования поведения пользователя, например Selenium. Можете провести диагностику endpoint'ов - возможно можно будет обращаться за фотографиями напрямую, зная идентификаторы записей.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

Для решения проблемы с парсером, который парсит только первые 5 URL картинок и затем отображает стандартное изображение, можно использовать следующий подход.

Вам необходимо проверить, каким образом парсер получает изображения и как он их обрабатывает. Возможно, есть ограничение на количество изображений, которые парсер может обработать. Если это так, то вам нужно будет найти способ изменить это ограничение.

Если у вас есть доступ к исходному коду парсера, вы можете внести изменения в логику его работы. Например, вы можете изменить код таким образом, чтобы парсер мог обрабатывать больше чем 5 изображений.

Если у вас нет доступа к исходному коду парсера, вы можете попробовать обойти это ограничение, используя другой парсер или скрипт, который сможет собирать все изображения с сайта и обрабатывать их корректно.

Или же, вы можете попробовать изменить способ представления изображений на сайте. Например, вы можете вместо использования прямых URL изображений, использовать базу данных с ссылками на изображения, которые парсер будет обрабатывать корректно.

Независимо от выбранного способа, важно тщательно протестировать все изменения, чтобы убедиться, что они решают проблему и не вызывают других проблем.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно