Tôi đang sử dụng selenium
để nhấp vào trang web tôi muốn, và sau đó phân tích trang web bằng cách sử dụng Beautiful Soup
.
Ai đó đã chỉ ra cách có được HTML bên trong của một phần tử trong Selenium WebDriver
. Có cách nào để có được HTML của toàn bộ trang không? Cảm ơn
Mã mẫu trong Python
[dựa trên bài đăng trên, ngôn ngữ dường như không quá nhiều]:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
url = '//www.google.com'
driver = webdriver.Firefox[]
driver.get[url]
the_html = driver---somehow----.get_attribute['innerHTML']
bs = BeautifulSoup[the_html, 'html.parser']
Đã hỏi ngày 10 tháng 3 năm 2016 lúc 0:42Mar 10, 2016 at 0:42
Để có được HTML cho toàn bộ trang:
from selenium import webdriver
driver = webdriver.Firefox[]
driver.get["//stackoverflow.com"]
html = driver.page_source
Để có được HTML bên ngoài [bao gồm thẻ]:
# HTML from ``
html = driver.execute_script["return document.documentElement.outerHTML;"]
# HTML from ``
html = driver.execute_script["return document.body.outerHTML;"]
# HTML from element with some JavaScript
element = driver.find_element_by_css_selector["#hireme"]
html = driver.execute_script["return arguments[0].outerHTML;", element]
# HTML from element with `get_attribute`
element = driver.find_element_by_css_selector["#hireme"]
html = element.get_attribute['outerHTML']
Để có được HTML bên trong [loại trừ thẻ]:
# HTML from ``
html = driver.execute_script["return document.documentElement.innerHTML;"]
# HTML from ``
html = driver.execute_script["return document.body.innerHTML;"]
# HTML from element with some JavaScript
element = driver.find_element_by_css_selector["#hireme"]
html = driver.execute_script["return arguments[0].innerHTML;", element]
# HTML from element with `get_attribute`
element = driver.find_element_by_css_selector["#hireme"]
html = element.get_attribute['innerHTML']
Đã trả lời ngày 10 tháng 3 năm 2016 lúc 0:59Mar 10, 2016 at 0:59
Florent B.Florent B.Florent B.
40,5K7 Huy hiệu vàng82 Huy hiệu bạc100 Huy hiệu đồng7 gold badges82 silver badges100 bronze badges
1
Đã trả lời ngày 29 tháng 10 năm 2019 lúc 18:07Oct 29, 2019 at 18:07
Karthikdivikarthikdivikarthikdivi
3.2793 huy hiệu vàng25 Huy hiệu bạc45 Huy hiệu đồng3 gold badges25 silver badges45 bronze badges
2
Sử dụng đối tượng trang trong Java:
@FindBy[xpath = "xapth"]
private WebElement element;
public String getInnnerHtml[] {
System.out.println[waitUntilElementToBeClickable[element, 10].getAttribute["innerHTML"]];
return waitUntilElementToBeClickable[element, 10].getAttribute["innerHTML"]
}
kohane15
69312 Huy hiệu bạc15 Huy hiệu đồng12 silver badges15 bronze badges
Đã trả lời ngày 24 tháng 8 năm 2017 lúc 9:16Aug 24, 2017 at 9:16
Một đoạn trích C# cho những người trong chúng ta có thể muốn sao chép / dán một chút mã làm việc vào một ngày nào đó
var element = yourWebDriver.FindElement[By.TagName["html"]];
string outerHTML = element.GetAttribute[nameof[outerHTML]];
Cảm ơn những người đã trả lời trước tôi. Bất cứ ai trong tương lai, những người được hưởng lợi từ đoạn C# này nhận HTML cho bất kỳ yếu tố trang nào trong bài kiểm tra selenium, vui lòng xem xét bỏ phiếu câu trả lời này hoặc để lại nhận xét.
kohane15
69312 Huy hiệu bạc15 Huy hiệu đồng12 silver badges15 bronze badges
Đã trả lời ngày 24 tháng 8 năm 2017 lúc 9:16Aug 27, 2021 at 18:00