Chciałbym aby program dopisywał mi "https://www.olx.pl/" do linków zaczynających się od "/d/"
możesz uzyskać taki zapis np. przez modyfikację zmiennej link
czyli
link = offer.find('a')
na
link = offer['href']
wspomnę tylko, że ten zapis
for offer in bs.find_all('a', class_='css-1bbgabe'):
"przegląda" wszystkie elementy <a> jakie pobrał get(URL)
a taki zapis próbuje "szukać" elementy <a> w elemencie <a> co jest błędem
[ can include a in a ]
for offer in bs.find_all('a', class_='css-1bbgabe'):
...
link = offer.find('a')
teraz używając np. string contains(), możemy "modyfikować" zawartość link
if not link.__contains__('https'):
link = 'https://www.olx.pl' + link
całość po proponowanych zmianach
from bs4 import BeautifulSoup
from requests import get
#https://www.youtube.com/watch?v=CEOTrWowqfo
URL = 'https://www.olx.pl/d/nieruchomosci/mieszkania/sprzedaz/warszawa/'
page = get(URL)
bs = BeautifulSoup(page.content, 'html.parser')
for offer in bs.find_all('a', class_='css-1bbgabe'):
footer = offer.find('p', class_='css-p6wsjo-Text eu5v0x0').get_text().strip().split('-')[0]
title = offer.find('h6').get_text().strip()
price = (offer.find('p', class_='css-wpfvmn-Text eu5v0x0').get_text().strip())
link = offer['href']
if not link.__contains__('https'):
link = 'https://www.olx.pl' + link
print(link, price)
z zastosowaniem lambda
from bs4 import BeautifulSoup
from requests import get
#https://www.youtube.com/watch?v=CEOTrWowqfo
URL = 'https://www.olx.pl/d/nieruchomosci/mieszkania/sprzedaz/warszawa/'
page = get(URL)
bs = BeautifulSoup(page.content, 'html.parser')
for offer in bs.find_all('a', class_='css-1bbgabe'):
footer = offer.find('p', class_='css-p6wsjo-Text eu5v0x0').get_text().strip().split('-')[0]
title = offer.find('h6').get_text().strip()
price = (offer.find('p', class_='css-wpfvmn-Text eu5v0x0').get_text().strip())
link = lambda : offer['href'] if offer['href'].__contains__('https') else 'https://www.olx.pl' + offer['href']
print(link(), price)