Python Selenium 访问 HTML 源代码

如何使用具有 Python 的 Selenium 模块获取变量中的 超文本标示语言源代码?

我想做这样的事情:

from selenium import webdriver


browser = webdriver.Firefox()
browser.get("http://example.com")
if "whatever" in html_source:
# Do something
else:
# Do something else

我该怎么做呢? 我不知道如何访问 HTML 源代码。

206118 次浏览

我建议使用 Urllib获取源代码,如果要进行解析,可以使用类似 靓汤的代码。

import urllib


url = urllib.urlopen("http://example.com") # Open the URL.
content = url.readlines() # Read the source and save it to a variable.

您需要访问 page_source属性:

from selenium import webdriver


browser = webdriver.Firefox()
browser.get("http://example.com")


html_source = browser.page_source
if "whatever" in html_source:
# do something
else:
# do something else

要回答关于让 网址用于 urllib 的问题,只需执行以下 JavaScript 代码:

url = browser.execute_script("return window.location;")

有了 Selenium2Library,你可以使用 get_source()

import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()

通过使用页面源代码,您将获得整个 HTML 代码。
因此,首先确定检索数据或单击元素所需的代码块或标记。.

options = driver.find_elements_by_name_("XXX")
for option in options:
if option.text == "XXXXXX":
print(option.text)
option.click()

您可以通过名称、 XPath、 id、链接和 CSS 路径找到元素。

Page _ source 将帮助您获得页面源代码。您可以检查该文本是否出现在页面源中。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("some url")
if "your text here" in driver.page_source:
print('Found it!')
else:
print('Did not find it.')

如果要将页面源代码存储在变量中,请在 司机,走开后面添加以下一行:

var_pgsource=driver.page_source

改变 如果条件为:

if "your text here" in var_pgsource:

您可以简单地使用 WebDriver对象,并通过其 @property字段 page_source访问页面源代码..。

尝试下面的代码片段: -)

from selenium import webdriver
driver = webdriver.Firefox('path/to/executable')
driver.get('https://some-domain.com')
source = driver.page_source
if 'stuff' in source:
print('found...')
else:
print('not in source...')
from bs4 import BeautifulSoup
from selenium import webdriver


driver = webdriver.Chrome()
html_source_code = driver.execute_script("return document.body.innerHTML;")
html_soup: BeautifulSoup = BeautifulSoup(html_source_code, 'html.parser')

现在您可以应用 BeautifulSoup 函数来提取数据..。