Как получить доступ к сайту через безголового водителя без получения разрешения - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь получить html-код сайта, используя безголовый драйвер chrome.Однако я получаю сообщение «Отказано в разрешении».Если я использую «обычный» драйвер, все работает нормально.

Есть ли способ обойти это?

Это мой первый пост, поэтому я прошу прощения за возможные ошибки при форматировании

from selenium import webdriver

#Headless driver 

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')                                             

driver1 = webdriver.Chrome(executable_path='./chromedriver', options=chrome_options, 
service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])

driver1.get('https://www.size.co.uk/')
html = driver1.page_source
html

Сообщение, которое я получаю:

<html xmlns="http://www.w3.org/1999/xhtml"><head>\n<title>Access Denied</title>\n</head><body>\n<h1>Access Denied</h1>\n \nYou don\'t have permission to access "http://www.size.co.uk/" on this server.<p>\nReference #18.ac81655f.1548818550.73b12da\n\n\n</p></body></html>

Обычный драйвер:

driver = webdriver.Chrome('./chromedriver')
driver.get('https://www.size.co.uk/')
html = driver.page_source
driver.quit()
html

В идеале, я хотел бы, чтобы вывод был таким же, как в последнем случае, без появления новых окон каждые пару секунд.

1 Ответ

0 голосов
/ 30 января 2019

Добавление в следующем фрагменте кода вернуло мне страницу для возврата:

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

Сайт явно проверяет наличие безголовых браузеров и затем отказывает им в доступе.Вот статья о том, как избежать обнаружения: Создание Chrome Headless Untetectable

Чтобы получить пользовательский агент, используемый драйвером, вы можете выполнить следующую команду:

driver.execute_script("return navigator.userAgent")

ChromesБезголовый пользовательский агент выглядит примерно так:

u'Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) HeadlessChrome / 71.0.3578.98 Safari / 537.36 '

...