Ответы пользователя по тегу Парсинг
  • Парсер не начинает скролить сайт,что делать?

    @DenisShahbazyan
    Ниже исправленный код. Те методы, которые вы используете (для поиска элементов), вероятней всего устарели. Еще в методе .perform() была опечатка.

    def get_source_html(url):
        chrome_options = Options()
        driver = Service(executable_path="C:\\webdrivers\\chromedriver.exe")
        driver = webdriver.Chrome(options=chrome_options)
    
        driver.maximize_window()
    
        try:
            driver.get(url=url)
            time.sleep(3)
    
            while True:
                find_more_element = driver.find_element(
                    By.CLASS_NAME, "catalog-button-showMore")
    
                if driver.find_elements(By.CLASS_NAME, "hasmore-text"):
                    with open("lesson6/source-page.html", "w") as file:
                        file.write(driver.page_source)
                    break
                else:
                    actions = ActionChains(driver)
                    actions.move_to_element(find_more_element).perform()
                    time.sleep(3)
        except Exception as ex:
            print(ex)
        finally:
            driver.close()
            driver.quit()
    Ответ написан
    1 комментарий
  • Как парсить авито?

    @DenisShahbazyan
    С помощью Selenium

    Через pip устанавливаешь selenium и webdriver_manager
    Задержку с помощью sleep() не рекомендую делать, лучше дожидаться загрузки элемента.
    С веб-драйверами не парься, в блоке try все сделается автоматически, в этом поможет библа webdriver_manager.

    from time import sleep
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from webdriver_manager.chrome import ChromeDriverManager
    
    
    URL = 'https://www.avito.ru/moskva/bytovaya_elektronika'
    PAUSE_DURATION_SECONDS = 5
    
    
    def main():
        driver.get(URL)
        sleep(PAUSE_DURATION_SECONDS)
    
    
    if __name__ == '__main__':
        try:
            service = Service(executable_path=ChromeDriverManager().install())
            driver = webdriver.Chrome(service=service)
            main()
        except Exception as e:
            print(e)
        finally:
            driver.quit()


    ---

    С помощью requests предполагаю, что всего на всего нужно правильные заголовки передать, и все будет работать, будет время, попробую и отпишусь.
    Ответ написан
    Комментировать