Почему веб-сайт блокирует навигацию браузера при использовании Selenium? - PullRequest
1 голос
/ 16 марта 2019

Я прочитал эту тему, но она мне не помогла.

Я пытаюсь получить какой-то элемент, пока это мое первое действие в Интернете.

Кроме того, иногда, при моем первом подключении к веб-сайту, запрос прерывается, и веб-сайт отказывается от чего-либо

Как веб-сайт узнает, что я использую селен?Я не делал никаких шаблонных действий или быстрых действий ..

Это веб-сайт

Может кто-нибудь помочь мне разобраться в этой проблеме?

Вот мой код

import selenium
from selenium import webdriver


def open_browser():
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--disable-infobars")
    browser = selenium.webdriver.Chrome("./chromedriver2.46.exe", chrome_options=chrome_options)
    browser.maximize_window()
    return browser


def go_to_yad2(browser):
    browser.get("https://www.yad2.co.il/products/all")


def open_category(browser):
    options_object = browser.find_element_by_xpath("//ul[@data-name='salesCatID']")
    print(options_object.text())


def main_method():
    browser = open_browser()
    go_to_yad2(browser)
    open_category(browser)


main_method()

1 Ответ

0 голосов
/ 16 марта 2019

Из вашего вопроса немного неясно, с каким именно элементом вы пытались взаимодействовать и почему при первом первом подключении к веб-сайту запрос прерывается, и веб-сайт отклоняет что-либо .

Некоторые дополнительные информационные сообщения с веб-сайта , исключение помогло бы нам лучше отладить проблему. Тем не менее, я взял свой собственный код и сделал пару простых модификаций и смог извлечь текст следующим образом:

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    def open_browser():
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('start-maximized')
        chrome_options.add_argument('disable-infobars')
        chrome_options.add_argument('--disable-extensions')
        browser = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'C:\WebDrivers\chromedriver.exe')
        return browser
    
    def go_to_yad2(browser):
        browser.get("https://www.yad2.co.il/products/all")
    
    def open_category(browser):
        print(WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "//h3[@class='search_title']"))).text)
    
    def main_method():
        browser = open_browser()
        go_to_yad2(browser)
        open_category(browser)
    
    main_method()
    
  • Вывод на консоль (неанглийские символы не отображаются на моем локальном хосте):

nonenglish_chars

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...