python - 带有硒离开按钮的网页抓取不可点击
问题描述
我认为它类似于这个问题:Button not clickable in Selenium Chrome window
我需要以自动方式搜索有关日志列表的信息。我正在尝试 selenium,但它无法单击按钮执行搜索。也许这是对网站的一些保护?
到目前为止,我的脚本是:
import time
import string
import itertools
from selenium import webdriver
chromedriver_location = "/home/dell/Downloads/chromedriver"
driver = webdriver.Chrome(chromedriver_location)
driver.get('https://www.idealista.com/valoraciones-inmuebles')
time.sleep(2)
test = '7559431DG0075N0001EY'
initial_button = '//*[@id="vendorlead"]/div[2]/a'
search_field = '//*[@id="search-by-reference"]'
valoration = '//*[@id="vendorlead"]/button'
driver.find_element_by_xpath(initial_button).click()
driver.find_element_by_xpath(search_field).send_keys(test)
driver.find_element_by_xpath(valoration).click()
当我手动或通过 Selenium Chrome 中的脚本单击按钮时,它会在控制台上显示以下错误:
提前致谢
解决方案
你被屏蔽了。(做第三个答案,因为其他答案在自动化调试方法中非常有效)
运行您的测试并让它无法按下最后一个按钮 - 但不要关闭 chrome。在该 chromedriver 实例中,选择右上角的语言选项并选择英语。
你会经历很多我不是机器人的验证码。完成所有这些,直到您访问英文网站。(您将无法使这些自动化 - 它们旨在停止自动化。)
关闭 chrome 驱动程序。
按原样重新运行脚本。
...
以上对我有用。我第一次运行下面它失败了你同样的错误。我做了上述,运行相同的代码没有改变,它工作。
import time
import string
import itertools
import selenium
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.idealista.com/valoraciones-inmuebles')
test = '7559431DG0075N0001EY'
#Objects
initial_button = '//*[@id="vendorlead"]/div[2]/a'
#search_field = '//*[@id="search-by-reference"]'
search_field ='//*[@id="vendorlead"]//input'
valoration = '//*[@id="vendorlead"]/button'
#Actions
time.sleep(5)
driver.find_element_by_xpath(initial_button).click()
time.sleep(5)
driver.find_element_by_xpath(search_field).send_keys(test)
time.sleep(5)
driver.find_element_by_xpath(valoration).click()
time.sleep(5)
...请不要在真实脚本中使用那个 time.sleeps。我只需要排除同步问题。
蟒蛇3.8,铬83
推荐阅读
- python-3.x - 有没有办法使用霍夫线检测器划定端点?
- php - 两个数组长度不等的数组组合
- angular - 在重新加载页面之前,ngrx 存储不会在另一条路线上更新
- html - 如何在 Chrome 的 HTML 中旋转 SVG 中的 Pdf.js 画布输出?
- java - Java 8 映射到一个对象列表,其中一个字段分组到一个列表中
- vuejs2 - VueJs - Vetur 不断创建奇怪的换行符,然后 eslint 抱怨它
- python - 使用 mongodb 3.2.22 分片不起作用
- c# - 使用 CDATA 将 XML 反序列化为 C# 模型
- java - 使用 varargs 方法,是否可以确定是否应内联传递对象?
- javascript - 猜谜游戏可能出现语法错误