Я загружаю веб-сайт для веб-скрейпинга с помощью Selenium WebDriver с Python.
Мне нужно загрузить из него таблицу, которая отлично работает, когда не используется headless = True.
Сама таблица загружается, но в этом случае показывает «Результаты не найдены», а в противном случае - извлекает элементы данных.
Я попытался проверить, нормально ли работает код, отключив безголовый режим. Он работает как шарм, каждый раз правильно загружает таблицу целыми элементами. Как только я использую headless, он пропускает данные таблицы.
(Помните, он по-прежнему загружает таблицу и ее заголовки, вместо элементов данных отображается «Результаты не найдены»)
Я также пробовал подделывать голову пользователя с аргументом 'user = какой-то возглавляемый пользователем '
Я также пробовал включать / отключать несколько параметров Chrome, таких как
disable gpu; начать с развернутого экрана; изменить размер экрана; обход прокси
и все остальное, что обычно используется для отладки безголовых параметров Chrome.
Ниже приведен код:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
service = webdriver.chrome.service.Service(r'C:/Program Files (x86)/SeleniumWrapper/chromedriver.exe')
service.start()
chrome_options = Options()
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36")
chrome_options.add_argument("--disable-gpu")
chrome_options.headless = True
driver = webdriver.Remote(service.service_url, desired_capabilities=chrome_options.to_capabilities())
driver.get('https://cambodiantr.gov.kh/index.php?r=searchMeasures/index')
table = driver.find_element_by_xpath('//*[@id="measures-grid"]/table')
all_rows = table.find_elements_by_tag_name('tr')
print(all_rows[0].text)
print(all_rows[1].text)
Полученные результаты:
-Без безголового режима:
| Имя - Применяется - Тип - Срок действия с - Срок действия до |
| Приостановление таможенной очистки импортных товаров может применяться в случае возражения против зарегистрированного знака владельца - Министерство сельского, лесного и рыбного хозяйства - Запрет - 14-01-2012 - 31-12-9999 |
-С безголовым режимом:
| Имя - Применяется - Тип - Срок действия с - Срок действия до |
| Результаты не найдены. |