【问题标题】:I can't get full html code when souping a dynamic table using Beautiful Soup/Selenium使用 Beautiful Soup/Selenium 对动态表进行增补时,我无法获得完整的 html 代码
【发布时间】:2020-08-27 10:45:38
【问题描述】:

我在用 Beautiful soup/Selenium 给动态表加汤时遇到了麻烦

当我运行代码时,我无法在笔记本中获取整个 html 代码。

我感兴趣的标签在我应该以某种方式“打开”的标签“框架集”下。我怎么能这样做?

driver = webdriver.Chrome('/Users/Administrador/Documents/chromedriver')
main_url = 'https://www.justiciacordoba.gob.ar/Estatico/JEL/Escrutinios/ReportesEleccion20190512/default.html'
driver.get(main_url)
soup = BeautifulSoup(driver.page_source, 'lxml')
soup

output : <html><head></head><frameset border="0" cols="*" frameborder="NO" framespacing="0" id="fset" rows="190,*">
<frame name="topFrame" scrolling="NO" src="Index.html"/>
<frame align="center" name="mainFrame" src="about:blank"/>
</frameset><noframes></noframes>
</html>

【问题讨论】:

  • 你有什么问题?
  • 根据您打算如何处理数据,您可能甚至不需要 BeautifulSoup。
  • 另外,我敢打赌,这只是笔记本中的输出被切断的情况。

标签: python selenium-webdriver web-scraping beautifulsoup


【解决方案1】:

改变驱动的frame并存储值:

driver.switch_to.frame(driver.find_element_by_name("topFrame"))
frame_source = driver.page_source

frame_source 变量应该存储 iframe 的源代码。我查看了网站,iframe 的名称是“topFrame”。

【讨论】:

  • 这会发生什么变化,有什么问题?
  • BeautifulSoup 默认不导入 lxml 解析器。 OP 没有具体说明问题是什么,所以答案假设他正在崩溃。用 html.parser 代替 lxml 会默认导入 html.parser。
  • 感谢您的回答!!问题是我无法访问完整的 html 代码,因为它是一个动态表。我感兴趣的标签位于标签框架集下,但在喝汤时我无法访问它们。关于如何访问它们有什么想法吗?
  • 我更新了我的答案,这是你要找的吗?
  • @EmilioChambouleyron 你想用那个页面做什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
相关资源
最近更新 更多