首页 > 解决方案 > 将 HTML-source 作为 HTML 对象获取,并能够使用 DOM 操作在其中工作

问题描述

我有一个页面,比如说,https://jq.profinance.ru/html/htmlquotes/site2.jsp每秒更新一次。我的目标是parse使用Selenium.

driver = webdriver.Chrome()
driver.get(url)
mylist = []

my_tables = driver.find_elements_by_tag_name('table') #operation1
for tr in my_tables.find_elements_by_tag_name('tr'): #operation2
    mylist.append(tr)

问题是 Python 将对对象的引用分配driver.find_elements_by_tag_name('table')给我的变量my_tables而不是值。因此,我没有得到正确的数据,因为操作 1 和 2 之间存在一些滞后。

如何复制网页 HTML 结构,然后使用Selenium命令浏览我的文档结构?

我试过pickle, get_aatribute("InnerHTML").page_source但它们在复制字符串对象时无法正常工作。

标签: pythonseleniumselenium-webdriver

解决方案


我认为你不能完全用 Selenium 来做你想做的事情。Selenium“驱动”正在运行的网络浏览器,如果该浏览器中的 Javascript 每秒左右更新页面内容,您将遇到这些时间问题。

您可以做的是使用 Selenium 驱动浏览器以字符串形式获取页面 HTML 的快照(正如您在上一段中描述的那样)。

然后,您可以使用Beautiful Soup之类的库来解析 HTML 字符串并提取您需要的数据。


推荐阅读