尽管我没有安装 Chrome 或 Chromium,ChromeDriver 仍在我的系统上运行。根据这个名字,我认为它就像一个“汽车司机”,你仍然需要一辆车才能出发。或者可能就像产品的 API,您仍然需要该产品来调用 API 来完成某些任务。
编辑:哎呀,Chromium 终于安装好了。
selenium google-chrome webdriver selenium-chromedriver selenium-webdriver
验证码和 Python 请求几乎是新的。验证码文档说要复制参数的值data-sitekey。
这是我的尝试,使用Selenium打开 url 并使用 Pythonrequests获取响应。
mainurl = 'https://imagetyperz.xyz/automation/recaptcha-v2.html'
driver.get(mainurl)
data_sitekey_class = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, "g-recaptcha"))).get_attribute("data-sitekey")
print(data_sitekey_class)
src_css_selector = driver.find_element_by_css_selector("iframe[role='presentation']").get_attribute("src")
print(src_css_selector)
keygoogle = src_css_selector[52:92]
print('Site Key = ', keygoogle)
data_post = {'key': data_sitekey_class, 'method': 'userrecaptcha', 'googlekey': keygoogle, "pageurl": mainurl}
response = requests.post(url = 'https://2captcha.com/in.php', data = data_post )
print(response)
print(response.text)
Run Code Online (Sandbox Code Playgroud)
我得到的200答复是:
6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY&co=aHR0cHM6Ly9pbWFnZXR5cGVyei54eXo6NDQz&hl=en&v=vJuUWXolyYJx1oqUVmpPuryQ&size=normal&cb=r14cgu7t25ul
Site Key = 6LdXeIYUAAAAAFmFKJ6Cl3zo4epRZ0LDdOrYsvRY
<Response [200]>
ERROR_WRONG_USER_KEY
Run Code Online (Sandbox Code Playgroud)
这是由于:
ERROR_WRONG_USER_KEY
Run Code Online (Sandbox Code Playgroud)
此外,错误部分提到:
Error code: ERROR_WRONG_USER_KEY
Description: You've …Run Code Online (Sandbox Code Playgroud) 我在使用 selenium 更改 Python 中的 Web 驱动程序用户代理时遇到错误。
这是我的代码:
import requests
import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'})
#Error is on line above
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
>>> driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent":"python 3.7", "platform":"Windows"})
文件“<stdin>”,第 1 行
driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent":"python 3.7", "platform":"Windows"})```
我正在尝试使用 Selenium 从 LV 网站上抓取一些数据,并在单击“登录”按钮后不断收到“访问被拒绝”屏幕。我觉得有一种保护措施可以防止这种情况,因为当我手动执行相同操作时,一切似乎都工作正常。奇怪的是,我需要单击“登录”按钮两次才能手动登录。
我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe')
driver.get('https://secure.louisvuitton.com/eng-gb/mylv')
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='ucm-wrapper']")))
driver.find_element_by_xpath("//button[@class='ucm-button ucm-button--default ucm-choice__yes']").click()
driver.find_element_by_id('loginloginForm').send_keys('xxx@xxx.com')
driver.find_element_by_id ('passwordloginForm').send_keys('xxxxxx')
driver.find_element_by_id('loginSubmit_').click()
Run Code Online (Sandbox Code Playgroud)
错误:
You don't have permission to access "http://secure.louisvuitton.com/eng-gb/mylv;jsessionid=xxxxxxx.front61-prd?" on this server.
Run Code Online (Sandbox Code Playgroud)
有没有办法用 Selenium 登录并绕过这个?
python selenium google-chrome selenium-chromedriver selenium-webdriver
我假设 Selenium 打开的 chrome 浏览会话与 google chrome 本地安装相同。但是当我尝试在这个网站上搜索时,即使只是用 selenium 打开它并手动控制搜索过程,我也会收到一条错误消息,因为当我在自己的个人资料中或在隐身窗口中使用常规 chrome 时,搜索结果返回正常。每当我搜索这个问题时,我都会发现说明鼠标移动或点击模式的结果会泄露它。但事实并非如此,因为我在打开浏览器后尝试手动控制。html 请求中的某些内容将其泄露出去。有没有办法克服它?有问题的网站是:https : //www.avnet.com/wps/portal/us
什么是硒?
当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“硒的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。据此,我推断出Selenium是工具的集合,该集合包括IDE,WebDriver API(语言绑定),Grid,Selenium Standalone Server,浏览器驱动程序。必须下载适当的文件才能构建项目。
什么是WebDriver?
WebDriver是一个API。它用多种语言编写,这些语言称为语言绑定。API具有控制浏览器的功能。您可以使用这些功能编写脚本来以所需的方式(测试用例)控制浏览器。
这就是我所知道的。如果我错了,请纠正我。我想从面试的角度知道这两个问题的答案。
我正在尝试通过 selenium 和/或 chrome_driver 登录到我的电子交易帐户,但是每次我尝试登录电子交易时似乎都能检测到我正在使用网络驱动程序并阻止登录。有什么办法可以让我的 chrome 驱动程序指向我的正常 chrome 会话?或阻止 etrade 检测到我正在使用这些驱动程序之一?我已经阅读了其他一些 SO 帖子,这些帖子提出了一些解决方法,但到目前为止没有任何效果。我在 chrome 和 firefox 上都尝试过 webdrivers,还尝试在登录前清除我的 cookie。
我在 ChromeDriver 76.0.3809.126 和 Selenium 服务器版本:3.141.59,任何解决这个问题的建议将不胜感激。
selenium google-chrome webdriver selenium-chromedriver selenium-webdriver
我尝试编写一个简单的脚本,每小时检查一次网站,并在发现有空时向我发送电子邮件。
我认为每隔一小时执行此操作不会引发任何问题,但出现以下错误:
MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=60745): Max retries exceeded with url: /session/900f45d6c8c800f2a8ebcf43daa05b69/url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa42c261c10>: Failed to establish a new connection: [Errno 61] Connection refused'))
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import schedule
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from notification import *
#script i have to send an email (works fine)
PATH = "mypath"
# i have the path where there drivers are
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
# to not open the browser
driver = webdriver.Chrome(options=chrome_options, executable_path=PATH) …Run Code Online (Sandbox Code Playgroud) python selenium google-chrome httpconnection selenium-chromedriver
我遇到了一个问题,在我将 Chromedriver 修改为不被网站检测为机器人后,它会在启动时立即死亡。
\n为了访问我的银行网站上的数据,我构建了一个使用 Selenium 和 Chromedriver 的基于 java 的工具。我的银行正在使用一些机器人检测软件,因此如果您只运行常规的 chromedriver,您就会被检测到,并且会抛出一般错误。在我的旧 Intel Mac 上,为了解决这个问题,我只需运行此命令,一切都会正常工作:
\nperl -pi -e \'s/cdc_/dog_/g\' `which chromedriver`\nRun Code Online (Sandbox Code Playgroud)\n当我在 Apple Silicon Mac 上运行此程序时,chromedriver 在启动时立即被终止
\n\xe2\x95\xad\xe2\x94\x80 motopascyyy@mbp2022 \xe2\x9e\x9c ~\n\xe2\x9e\x9c perl -pi -e \'s/cdc_/dog_/g\' `which chromedriver`\n\xe2\x95\xad\xe2\x94\x80 motopascyyy@mbp2022 \xe2\x9e\x9c ~\n\xe2\x9e\x9c chromedriver\n[1] 16612 killed chromedriver\nRun Code Online (Sandbox Code Playgroud)\n如果我用以下命令恢复命令perl -pi -e \'s/dog_/cdc_/g\' /path/to/chromedriver,它将再次开始运行。
\xe2\x95\xad\xe2\x94\x80 motopascyyy@mbp2022 \xe2\x9e\x9c ~\n137 x perl -pi -e \'s/dog_/cdc_/g\' `which chromedriver`\n\xe2\x95\xad\xe2\x94\x80 motopascyyy@mbp2022 \xe2\x9e\x9c ~\n\xe2\x9e\x9c chromedriver\nStarting ChromeDriver 101.0.4951.41 (93c720db8323b3ec10d056025ab95c23a31997c9-refs/branch-heads/4951@{#904}) on port 9515\nOnly local connections are …Run Code Online (Sandbox Code Playgroud) driver = webdriver.Chrome('C:/Workspace/Development/chromedriver.exe')
driver.get('https://www.nseindia.com/companies-listing/corporate-filings-actions')
inputbox = driver.find_element_by_xpath('/html/body/div[7]/div[1]/div/section/div/div/div/div/div/div[1]/div[1]/div[1]/div/span/input[2]')
inputbox.send_keys("Reliance")
Run Code Online (Sandbox Code Playgroud)
我正在尝试从该网站上抓取表格,该表格会在您在其上方的文本字段中输入公司名称后出现。附加的代码块与普通 google 搜索和 wolfram 网站的此类类似下拉菜单配合良好,但是当我在所需网站上运行我的脚本时,基本上只是在文本字段中输入所需文本 - 下拉列表显示“未找到记录” ',而手动完成后效果很好。
selenium ×10
python ×6
webdriver ×4
2captcha ×1
akamai ×1
autosuggest ×1
java ×1
macos ×1
recaptcha ×1
user-agent ×1
web-scraping ×1