【发布时间】:2021-08-30 01:55:46
【问题描述】:
我需要从网页中提取一些文本,但网页是动态构建的(插件)。 IE 我需要包含一个 javascript SDK
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v11.0" nonce="4HbUqy4w"></script>
然后将代码放置在我希望插件出现在我的页面上的位置
<div class="fb-comments" data-href="https://developers.facebook.com/docs/plugins/comments#configurator" data-width="1" data-numposts="1"></div>
所以总的来说,我有类似的东西
<html>
<body>
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v11.0" nonce="4HbUqy4w"></script>
<div class="fb-comments" data-href="https://developers.facebook.com/docs/plugins/comments#configurator" data-width="1" data-numposts="1"></div>
</body>
</html>
在浏览器上呈现这个页面应该会自动加载一些我现在想要抓取的数据。 有没有办法在 python 中呈现这个 HTML? 我试过使用
from requests_html import HTML
doc = # the content above
html = HTML(html=doc)
page = html.render(keep_page=True, sleep=120)
但页面总是None
理想情况下,我想要类似的东西
html_code = #here
loaded_html_code = a_package.render(html_code) # This should render my HTML which in turn causes an Iframe to be loaded.
【问题讨论】:
-
美汤可以帮上忙。你标记了它,但你还没有尝试过。阅读this
-
感谢@Raptor 提供链接,但我看不到直接使用 Beautiful Soup 的方法。给出的建议之一是我在上面使用的
requests_html。
标签: web-scraping beautifulsoup python-requests python-requests-html