我正在嘗試檢索網頁的代碼。特別是網頁 ( https://registry.verra.org/app/projectDetail/VCS/812 ) 的代碼,它是在正文中的 apx-root 標簽內生成的(源代碼中的第 18 行)。
目前我嘗試使用 selenium 通過 apx-root 標簽的名稱選擇元素,以最終顯示生成的 HMTL 代碼,但沒有成功。
from selenium import webdriver
url = "https://registry.verra.org/app/projectDetail/VCS/812"
driver = webdriver.Chrome()
driver.get(url)
elem = driver.find_elements_by_css_selector('apx-root')
print(elem[0].get_attribute('innerHTML'))
有人可以幫忙嗎?非常感謝。
編輯:
我不得不等待頁面加載才能訪問標簽內的代碼。
url = "https://registry.verra.org/app/projectDetail/VCS/812"
driver.get(url)
delay = 5
try:
WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.Id, 'an_element i need')))
except TimeoutException:
print("Loading took too much time!")
apx_root = driver.find_element(By.XPATH, '/html/body/apx-root')
html = apx_root.get_attribute("innerHTML")
uj5u.com熱心網友回復:
如果我對您的理解正確,您希望獲得 apx-root 標記的 innerHTML 內容。
我們不使用 css_selector,而是使用 XPATH。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://registry.verra.org/app/projectDetail/VCS/812")
#Use XPATH to find the apx-root tag
apx_root = driver.find_element(By.XPATH, '/html/body/apx-root')
#If you want the inner HTML not including apx-root
page_inner_HTML = apx_root.get_attribute("innerHTML")
#If you want the outer HTML including apx-root
page_outer_HTML = apx_root.get_attribute("outerHTML")
此外,不推薦使用 Selenium 的 find_elements_by 方法,而應使用帶有 By 的 find_element 方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321001.html
上一篇:使用登錄MSXML2.XMLHTTP60進行網頁抓取
下一篇:如何使用美麗的湯從標簽中提取內容
