问题:Python Selenium访问HTML源
如何使用Selenium模块和Python在变量中获取HTML源代码?
我想做这样的事情:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://example.com")
if "whatever" in html_source:
# Do something
else:
# Do something else
我怎样才能做到这一点?我不知道如何访问HTML源。
回答 0
您需要访问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
回答 1
借助Selenium2Library,您可以使用 get_source()
import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()
回答 2
driver.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.')
如果要将页面源存储在变量中,请在driver.get之后添加以下行:
var_pgsource=driver.page_source
并将if条件更改为:
if "your text here" in var_pgsource:
回答 3
通过使用页面源,您将获得完整的HTML代码。
因此,首先确定需要检索数据或单击元素的代码或标记块。
options = driver.find_elements_by_name_("XXX")
for option in options:
if option.text == "XXXXXX":
print(option.text)
option.click()
您可以按名称,XPath,ID,链接和CSS路径找到元素。
回答 4
要回答有关获取用于urllib 的URL的问题,只需执行以下JavaScript代码:
url = browser.execute_script("return window.location;")
回答 5
您可以简单地使用该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...')
回答 6
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函数来提取数据…
回答 7
我建议使用urllib获取源代码,如果要解析,请使用Beautiful Soup之类的东西。
import urllib
url = urllib.urlopen("http://example.com") # Open the URL.
content = url.readlines() # Read the source and save it to a variable.
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。