为什么使用Selenium时网站会阻止浏览器导航? - python

我是read this主题,但并没有帮助我。

我正在尝试获取一些要素,而这是我对网络的第一步。

另外,有时,在我第一次连接到网站时,请求被破坏了,网站拒绝了任何东西

网站如何知道我正在使用硒?我没有做任何模式动作或快速动作。

这是website

有人可以帮我解决这个问题吗?

这是我的代码

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()

python参考方案

从您的问题中确切不清楚您要与哪个元素进行交互,以及为什么在您第一次连接到网站时,请求被破坏并且网站拒绝任何内容,因此尚不清楚。

来自网站的更多信息,例如例外,将有助于我们更好地调试问题。但是,我采用了自己的代码,并进行了一些简单的修改,并能够提取文本,如下所示:

代码块:

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()

控制台输出(非英语字符不会在我的本地主机上呈现):

为什么使用Selenium时网站会阻止浏览器导航? - python

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

如何使用Selenium和Python启动基于Chromium的Vivaldi浏览器会话 - python

我正在尝试将vivaldi browser与Selenium一起使用。这是一款与Chrome浏览器非常相似的Chrome浏览器。我有Selenium与Firefox(geckodriver)和Google Chrome(chromedriver)一起工作,但是我似乎找不到Vivaldi的方法。任何帮助,将不胜感激。 python大神给出的解决方案 如果默认情…

硒独立服务器日志级别 - python

长话短说:我正在尝试将日志级别更改为Selenium独立服务器上的WARNING。我在CentOS 6.7上运行2.48.2。我在服务器端尝试过,即在启动服务器时添加了-Dselenium.LOGGER.level=WARNING-不起作用。然后,我尝试使用默认级别作为警告的自定义属性文件-Djava.util.logging.config.file=/op…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

Selenium with Python:从具有只读功能的表单中收集电子邮件 - python

我正在尝试从内部具有只读内容的网站上的表单收集电子邮件地址。<input name="email" id="email" type="text" class="form-control" value="[email protected]" readonl…