【发布时间】:2017-04-05 14:23:48
【问题描述】:
我现在开始使用beautifulsoup来抓取网站,虽然我对网页缺乏理论知识,但我想我已经掌握了基础知识,我会尽力提出我的问题。
我对动态网页的意思如下:一个网站,其 HTML 会根据用户操作发生变化,在我的例子中是可折叠表格。
我想获取一些“div”标签内的数据,但是当你加载页面时,数据在 html 代码中似乎不可用,当你点击它展开的表格时,以及这个“div”的“类”从“某事 blabla collapsible”变为“某事 blabla collapsible active”之类的变化,这我可以用我的知识刮掉。
我可以使用 beautifulsoup 获取这些数据吗?万一我做不到,我想用selenium之类的东西来点击所有的表格,然后下载我可以抓取的html,有没有更简单的方法?
非常感谢。
【问题讨论】:
-
Selenium 可能是您最好的选择,然后使用
driver.page_source获取 HTML。如果您需要更具体的建议,查看一些代码会很有帮助。 -
问题是页面使用
JavaScript/AJAX加载数据。如果您知道JavaScript/AJAX使用哪个 url 来获取数据,那么您也可以使用urllib/requests来获取此数据。您可以在Chrome/Firefox中使用DevTools手动查找此url,然后您可以在Python 代码中使用它。但是你必须知道 HTTP、DevTools,有时还有 JavaScript、XPath 等。顺便说一句:关闭浏览器中的 JavaScript 并加载页面,你会看到 urllib/requests(和 BS)看到的内容。
标签: python html selenium beautifulsoup