使用 Selenium 獲取頁面完整 HTML(含標籤),嘗試代碼:
content = browser.find_element_by_id("").text
print(content)
filename = company_name + '.json'
f3 = codecs.open(filename, mode='wb', encoding='utf-8')
f3.write(content)
f3.close()
browser.close()
但 find_element_by_id("") 留空,且 .text 僅獲取可見文本,非完整 HTML。
page_sourcehtml = browser.page_source # 當前頁面完整 HTML 字符串
with open(filename, 'w', encoding='utf-8') as f:
f.write(html)
無需定位元素,直接獲取渲染後的 DOM 序列化結果。
get_attribute('outerHTML')element = browser.find_element_by_id("your_element_id") # 必須填寫真實 ID
html = element.get_attribute('outerHTML')
get_attribute('innerHTML')html = element.get_attribute('innerHTML')
find_element_by_id("") 會拋異常,需填寫目標元素的真實 ID。outerHTML 或 page_source。open(..., encoding='utf-8'),無需 codecs。.html,而非 .json。from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://example.com')
# 方案 A:保存整頁
with open('page.html', 'w', encoding='utf-8') as f:
f.write(browser.page_source)
# 方案 B:保存特定元素(需真實 ID)
try:
elem = browser.find_element_by_id('content')
with open('element.html', 'w', encoding='utf-8') as f:
f.write(elem.get_attribute('outerHTML'))
except Exception as e:
print('元素未找到:', e)
browser.quit()
browser.page_sourceelement.get_attribute('outerHTML')utf-8,副檔名用 .html