• XSS.stack #1 – первый литературный журнал от юзеров форума

парсер номеров с OLX на python

Volstiny

RAID-массив
Пользователь
Регистрация
24.07.2019
Сообщения
83
Реакции
249
Всем привет. Как обещал выкладываю парсер номеров с OLX на 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)

Всем хорошего дня ☺
 
Что ему нужно? ) Зачем это?
Python:
selenium.common.exceptions.WebDriverException: Message: 'D:\Games\msedgedriver.exe' executable needs to be in PATH. Please download from http://go.microsoft.com/fwlink/?LinkId=619687
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Почему бы без него не сделать?
не знаю, тс решил запилить selenium, вроде в olx есть апи
если делать на селениуме, то в окончательную версию я бы добавлял headless для сокрытия браузера
options.addArguments("--headless");
 
Можно и datacol использовать, возможно обновить чуть настройки кампании сбора. Вполне удобно, разберется даже ребенок.
На нормальных покупных проксях за день-сутки можно вытянуть всё. Правда окажется что уникальных селлеров, как и уникальных мобил там очень мало...
 
Можно и datacol использовать, возможно обновить чуть настройки кампании сбора. Вполне удобно, разберется даже ребенок.
На нормальных покупных проксях за день-сутки можно вытянуть всё. Правда окажется что уникальных селлеров, как и уникальных мобил там очень мало...
Datacol ломанная ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Hello, for anyone can't be run the script bcs " Volstiny" used selenium modules for web browsing to create robots or scarping information ..
so you need driver for the module
in
driver = webdriver.Edge ("D: \\ Games \\ msedgedriver.exe")

you can change the value to your own driver read this page ..


thanks
 
не знаю, тс решил запилить selenium, вроде в olx есть апи
если делать на селениуме, то в окончательную версию я бы добавлял headless для сокрытия браузера
options.addArguments("--headless");

Интересно - а нужна ли зарегистрироваться для использования их апи?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх