Piszę przykładowy skrypt, który ze strony z ogłoszeniami nieruchomości będzie pobierał tytuł ogłoszenia, kategorię i cenę.
Potrafię pobrać tytuł i kategorię i zapisać jako jedną linię do pliku csv ale mam problem z ceną. W sekcji którą wybrałem jako pojedyncze ogłoszenie, nie pokazuje ceny pomimo, że jak wejdę w źródło strony wygląda, że ta cena tam jest. Poradzi ktoś jaką sekcję wybrać żebym miał w niej powyższe informacje? Lub co zrobić aby dopisać cenę do już zapisanych w pliku linii? Cenę potrafię pobrać osobnym kodem. Kod wraz z adresem do strony wklejam poniżej.
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'https://www.morizon.pl/mieszkania/krakow/'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
'''html parsing'''
page_soup = soup(page_html, 'html.parser')
containers = page_soup.findAll('section', {'class': 'single-result__content single-result__content--height'})
file_name = 'scraping.csv'
f = open(file_name, 'w')
names = 'Location, Category, Price\n'
f.write(names)
for container in containers:
'''grabs each title'''
headers = container.findAll('h2', {'class': 'single-result__title'})
header = headers[0].text.strip()
'''grabs each category'''
categories = container.findAll('p', {'class': 'single-result__category'})
category = categories[0].text.strip()
prices = page_soup.findAll('p', {'class': 'single-result__price'})
price = prices[0].text
f.write(header + ',' + category + ', ' + price + '\n')