Отказано в доступе к веб-сайту с использованием webdriver с Selenium

#python #selenium #selenium-webdriver #chrome-web-driver

#python #selenium #selenium-веб-драйвер #chrome-web-driver #selenium-webdriver #chrome-веб-драйвер

Вопрос:

У меня проблема даже с открытым веб-сайтом, использующим «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?1dmyamp;urile=wcm:path:/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, все в порядке :/
Спасибо всем за любую помощь.

Комментарии:

1. вы используете macbook?

2. нет, я использую Windows 10 x64 professional

3. Вам необходимо включить опцию разработчика в разделе безопасность / конфиденциальность на вашем компьютере с Windows

Ответ №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?1dmyamp;urile=wcm:path:/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()
  

Примечание — Пожалуйста, внесите соответствующие изменения в свой код.

Комментарии:

1. Привет, спасибо за ответ, да, я вижу, что все работает нормально. Я понимаю, что за этой «кнопкой» скрывается нечто большее, какой-то скрипт, а не только этот URL, который можно получить и открыть? 🙁 Разница между моим и вашим кодом заключается в следующем, вы используете что-то вроде «щелчка мышью»? Скрипт пытается найти объект на веб-сайте и просто щелкнуть мышью, но без перемещения курсора? Но спасибо за ответ, работает нормально : o 🙂

Ответ №2:

Поиск в Google привел меня сюда. Попробовав несколько вариантов. у меня сработалНеобнаруженный Chromedriver с очень простым скриптом без каких-либо опций.

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