【发布时间】:2019-07-18 23:53:43
【问题描述】:
我被这个卡住了。我正在创建一个应该获取页面 HTML 的网络爬虫。问题是当我到达由 JS 呈现的内容时。为此,我需要使用 Selenium 之类的东西来获取完整的 HTML。
这很好,并且对于使用例如 Angular 创建的页面非常有效。当我们到达用 Polymer 或任何其他带有 Shadow DOM 和 Web 组件的框架编写的页面时,问题就开始了。 在那种情况下,我只能在第一个影子根之前获取内容。 我使用的代码:
driver.execute_script("return document.body.innerHTML")
是的...所以我想构建一个包含所有自定义元素内联的字符串。 我得到的只是:
<some-app page="homepage"></some-app><iron-a11y-announcer></iron-a11y-announcer>
你可以想象这还不够。 所以我知道我可以递归访问所有影子根元素,例如。
document.querySelector("some-app").shadowRoot
我想让它通用。 有任何想法吗?有现成的解决方案吗?
【问题讨论】:
-
发布网站的url来检查HTML代码
-
好吧,我不能。这是公司的内部网站。但是这个:shop.polymer-project.org 是一样的
标签: javascript python selenium selenium-webdriver