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"\n\nСтраница {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 ?