Всем привет. Как обещал выкладываю парсер номеров с OLX на python.
Строго не судите я новичок в написании скриптов на python.
Всем хорошего дня ☺
Строго не судите я новичок в написании скриптов на python.
Python:
import requests
from selenium import webdriver
from bs4 import BeautifulSoup
import time
base_url = 'https://www.olx.ua/nedvizhimost/kvartiry-komnaty/'
driver = webdriver.Edge("D:\\Games\\msedgedriver.exe")
def get_all_ads(base_url):
total_ads = []
base_r = requests.get(base_url)
base_soup = BeautifulSoup(base_r.content, 'html.parser')
total_page = base_soup.find_all('span', attrs={'class': 'item fleft'})[-1].text
for i in total_page:
url = f'https://www.olx.ua/nedvizhimost/kvartiry-komnaty/?page={i}'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
ads = soup.find_all('h3', attrs={'class':'lheight22 margintop5'})
for ad in ads:
link_ads = ad.find('a', attrs={'class':'marginright5 link linkWithHash detailsLink'}).get('href')
total_ads.append(link_ads)
return total_ads
def get_phone(total_ads, driver):
total_phone = []
for ads in total_ads:
driver.get(ads)
phone_btn = driver.find_element_by_xpath('//span[@class="spoiler"]')
phone_btn.click()
time.sleep(3)
phone = driver.find_element_by_xpath("//strong[@class='fnormal xx-large']").text
print(phone)
driver.quit()
total_phone.append(phone)
return total_phone
total_ads = get_all_ads(base_url)
get_phone(total_ads, driver)
Всем хорошего дня ☺