我有一个页面,比如https://jq.profinance.ru/html/htmlquotes/site2.jsp
,它每秒更新一次。我的目标是使用Selenium
来parse
值。
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为我的变量my_tables
指定了对对象driver.find_elements_by_tag_name('table')
的引用,但没有指定值。因此,我没有得到正确的数据,因为操作1和操作2之间存在一些滞后。
如何复制网页HTML结构,然后使用Selenium
命令遍历文档结构?
我尝试了pickle
、get_aatribute("InnerHTML")
和.page_source
,但它们在复制字符串对象时无法正常工作。
我认为单独使用硒并不能完全做到您想要做的事情。Selenium"驱动"一个正在运行的web浏览器,如果该浏览器中的Javascript每隔一秒左右就会更新页面的内容,那么您就会遇到这些时间问题。
您可以使用Selenium驱动浏览器以字符串形式获取页面HTML的快照(正如您在上一段中所描述的那样(。
然后,您可以使用Beautiful Soup这样的库来解析HTML字符串并提取所需的数据。
过了一段时间,我找到了解决方案:
- 将文件转储到字符串中并本地保存在
html
文件中 - 在本地打开
html
文件 - 如果你想回到网站,写
driver.back()