Selenium + chromedriver无法仅在某些页面中加载HTML,而不能在其他页面中加载HTML

时间:2019-10-11 23:49:36

标签: python python-3.x selenium scrapy selenium-chromedriver

这是在我问过here

的同一项目中

但是,这次我遇到另一个问题。基本上,我试图在if subprocess.call("system_profiler SPDisplaysDataType | grep 'retina'", shell=True) == 0: IS_RETINA = True 切换链接下获取UpdatedPublished的2个字段(为此切换选择的HTML是More information

在一页https://thehive.itch.io/promnesia中,我可以检索2个字段。但是在另一页https://dmullinsgames.itch.io/paper-jekyll中,尽管两者都具有相同的HTML,但我无法做到。

这是我的代码(如Yosuva A在上一个问题中所建议):

"//a[@class='toggle_info_btn']"

运行此程序时,我看到 chromedriver 打开带有该页面的Chrome窗口,但是我没有在其中看到两个字段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() Updated。 chromedriver在打开Chrome实例时会看到以下内容: enter image description here

这是实际上的内容: enter image description here 请让我知道这是什么问题...

1 个答案:

答案 0 :(得分:0)

正如D.Weltrowski在评论中回答的那样,页面中的某些字段仅在登录后才可见。此外,同一字段在一个页面上可见,而在另一页面上不可见。因此,解决方案是在抓取之前登录Scrapy,并且能够抓取这些数据。有关经过身份验证的抓取here

的信息