Selenium + chromedriver не может загружать HTML только на некоторых страницах, но не на других - PullRequest
0 голосов
/ 12 октября 2019

Это тот же проект, который я просил здесь

Однако на этот раз я столкнулся с другой проблемой. По сути, я пытаюсь получить 2 поля Updated и Published по ссылке переключателя More information (HTML-код для выбора этого переключателя - "//a[@class='toggle_info_btn']"

На одной странице https://thehive.itch.io/promnesia, Я могу получить 2 поля. Но на другой странице https://dmullinsgames.itch.io/paper-jekyll, Я не могу даже при том, что у обоих одинаковый HTML.

Вот мой код (как предложил Yosuva A в предыдущем вопросе):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver = webdriver.Chrome('chromedriver')  # Optional argument, if not specified will search path.
driver.implicitly_wait(15)

driver.get("https://dmullinsgames.itch.io/paper-jekyll");
driver.find_element(By.XPATH,"//a[@class='toggle_info_btn']").click()
time.sleep(2)
WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.XPATH, "//div[@class='game_info_panel_widget']/table//tr//td"))) #Wait for specific element 

table_rows= driver.find_elements(By.XPATH,"//div[@class='game_info_panel_widget']/table//tr//td")

for rows in table_rows:
    print(rows.text)

driver.quit()

При запуске я вижу, что chromedriver открывает окно Chrome со страницей, но я не вижу там 2 полей Updated и Published. Вот что видит chromedriver при открытии экземпляра Chrome: enter image description here

Вот что на самом деле там: enter image description here Пожалуйста,я знаю, что это за проблема ...

1 Ответ

0 голосов
/ 14 ноября 2019

Как ответил Д.Вельтровски в комментарии, некоторые поля на странице видны только при входе в систему. Кроме того, одно и то же поле может быть видно на одной странице, но невидимо на другой. Поэтому решение состоит в том, чтобы войти в Scrapy перед сканированием, и он сможет очистить эти данные. Информация о проверенном сканировании здесь

...