使用带有 Selenium 的 webdriver 拒绝访问网站

Access denied to website using webdriver with Selenium

提问人:ArturY 提问时间:8/20/2020 最后编辑:Norayr SargsyanArturY 更新时间:12/7/2022 访问量:10627

问:

我甚至对使用“webdriver Chrome”的开放网站也有问题。仅尝试打开网站以“拒绝访问”信息结尾,并且不知道为什么。 以下是我的代码:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

import time

class PriceCheckPhoenix:
    def __init__(self):
        self.url_login = "https://www.phoenixcontact.com/online/portal/pl?1dmy&urile=wcm%3apath%3a/plpl/web/home"

        self.create_session()

    def create_session(self):
    # Run browser with webdriver

        driver = webdriver.Chrome(executable_path="D:/chromedriver_v84.exe")
        driver.get(self.url_login)

        time.sleep(2)

        # Find link to sub-website with login
        link = driver.find_element_by_xpath('//*[@id="pxc-funcnav"]/div[3]/ul/li[1]/a').get_attribute("href")
    
        driver.get(link)

        time.sleep(100)

代码说明:

#1 我创建浏览器 chrome 会话

#2 从 self.url_login 加载第一个网站

#3 已加载

#4 我需要在网站上的活动文本后面找到一个链接才能登录

#5 我找到了它并尝试打开它,但获得链接后的响应是:

Access Denied
You don't have permission to access 
"http://www.phoenixcontact.com/online/portal/pl/pxc/offcontext/login/!ut/p/z1/tZJNa4NAEIZ_Sw45yszuuro9WkO1xqY2EqN7EbXGWPzYFDGlv74Gcio0oYTMZRgY3mcYHpAQg-yysa6yoe67rJnmRBqpu4zownzixDEYx2cWmIYTeYgrHSKQIFVRv0MieJZTZEITglFNLwTXRPaw03RGC6Qm10nOTttFN6hhD4lqVDPHY5nPcd-3JSQTy0ypQ5C4Onl5XUcmvgXCttzNWo-WCNuxLo-w6frPdjot_CfZxWsEciPhSjy7a7xN7xt_63M8kJdNmlSrPw4HaU2G9N1Qfg0Q_1Zke4JeiPHIeQH_KAshVE0a-GkQ24EPqm0F41WbLh5XWuKN3-fm78KgsmazH7dw0Ts!/dz/d5/L0lJSklKQ2dwUkEhIS9JRGpBQUF4QUFFUkNwcVlxLzRObEdRb1lwTWhUalVFZyEvWjZfR0FMNjE0ODI4RzNEQzBJMklPMlA2OTFHMDMvWjdfR0FMNjE0ODI4RzNEQzBJMklPMlA2OTFHSTcvdGFyZ2V0Vmlldy9sb2dpbg!!/" on this server.
Reference #18.d58655f.1597921471.5b29112

有谁知道这里出了什么问题?:(当我尝试从普通Chrome浏览器中的链接加载网站时,一切都很好:/ 谢谢大家的帮助。

python selenium selenium-webdriver chrome-web-driver

评论

0赞 Justin Lambert 8/20/2020
您使用的是MacBook吗?
0赞 ArturY 8/20/2020
否,我使用的是 Windows 10 x64 专业版
0赞 Justin Lambert 8/20/2020
您需要在 Windows 计算机的安全/隐私部分启用开发人员选项

答:

8赞 Swaroop Humane 8/20/2020 #1

请尝试以下代码,让我知道它是否适合您:-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time

options = Options()
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36'
options.add_argument('user-agent={0}'.format(user_agent))

driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 20)
action = ActionChains(driver)

driver.get("https://www.phoenixcontact.com/online/portal/pl?1dmy&urile=wcm%3apath%3a/plpl/web/home")
Login_Btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@class='pxc-fn-login']/a")))

action.move_to_element(Login_Btn).click().perform()

注意 - 请相应地对代码进行更改。

评论

0赞 ArturY 8/21/2020
嘿,谢谢你的回答,是的,我明白了,这很好。我知道这个“按钮”的背后还有更多的东西,一些脚本,而不仅仅是这个 URL 可以获取和打开?:(我的代码和你的代码之间的差异是这样的,你使用类似“鼠标点击”的东西?脚本尝试在网站上查找对象,然后像鼠标一样单击但没有移动光标?但是谢谢你的回答,工作正常:o :)
0赞 William 12/7/2022 #2

谷歌搜索把我带到了这里。在尝试了几个选项之后。未检测到的 Chromedriver 带有一个非常简单的脚本,没有任何选项对我有用。

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get(<url here>)