这是在我问过here
的同一项目中但是,这次我遇到另一个问题。基本上,我试图在if subprocess.call("system_profiler SPDisplaysDataType | grep 'retina'", shell=True) == 0:
IS_RETINA = True
切换链接下获取Updated
和Published
的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实例时会看到以下内容:
答案 0 :(得分:0)
正如D.Weltrowski在评论中回答的那样,页面中的某些字段仅在登录后才可见。此外,同一字段在一个页面上可见,而在另一页面上不可见。因此,解决方案是在抓取之前登录Scrapy,并且能够抓取这些数据。有关经过身份验证的抓取here
的信息