这是否可以在使用 python 执行 javascript 后加载页面?

IT技术 javascript python-3.x beautifulsoup
2021-03-20 14:14:20

这是我阅读的页面:

<html>
<head>
<script type="text/javascript">
    document.write("Hello World")
</script>
</head>
<body>
</body>
</html>

如您所见,Hello World使用javascript在HTML页面上添加了,当我使用HTML解析器时,就像BeautifulSoup解析它一样,它无法解析Hello World,我可以解析客户端如何真正解析实际结果看....?谢谢。

2个回答

我在用 python 编写网络爬虫时遇到了类似的问题,我发现Selenium Web Driver与 BeautifulSoup 结合使用非常有用。代码最终看起来像这样:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.yoursite.com")
soup = BeautifulSoup(browser.page_source, "html.parser")
...

使用 Selenium WebDriver,在功能上还有“等待某个 DOM 元素加载”的功能,这也使得使用 javascript 元素的计时也更容易。

为了在 javascript 操作后正确表示 DOM 的样子,您必须实际执行 javascript。这必须由具有 javascript 引擎和文档的 DOM(而不是文本/标记)表示的东西来完成 - 通常是浏览器。