python - 为什么网站在使用 Selenium 时会阻止浏览器导航?
问题描述
我读了这个主题,但它对我没有帮助。
我正在尝试获取一些元素,而这是我对网络的第一次操作。
此外,有时,在我第一次连接到网站时,请求被破坏并且网站拒绝任何内容
该网站如何知道我正在使用硒?我没有做任何模式动作或快速动作..
这是网站
谁能帮我解决这个问题?
这是我的代码
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()
解决方案
您的问题有点不清楚您试图与哪个元素进行交互,以及为什么在您第一次连接到网站时,请求被破坏并且网站拒绝任何内容。
来自网站的更多信息,异常将帮助我们以更好的方式调试问题。但是,我使用了您自己的代码并进行了一些简单的修改,并且能够提取如下文本:
代码块:
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()
控制台输出(非英文字符不会在我的本地主机上呈现):
推荐阅读
- java - 如何使用 Lambda 表达式将 ArrayList 中的一组值添加到另一个 ArrayList
- visual-c++ - 如何标记这个字符串
- python - 删除不是 a 到 z 的所有内容
- python - 在行首添加带有特定字符串的字符 - Python
- angular - 无法在注销后的 url 上重定向 azure AD
- nlog - NLog 截断语法
- javascript - 如何检索 Firebase-Instance-ID-token?
- javascript - 单击添加类以使用 vanilla JavaScript 隐藏其他元素
- javascript - 未捕获的 ReferenceError:未定义 getVote?
- java - 使用预签名 URL 限制 S3 PUT 文件大小