8

这是我阅读的页面:

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

如您所见,使用 javascript 在 HTML 页面上添加了 ,当我Hello World使用 HTML 解析器时,就像BeautifulSoup解析它一样,它无法解析Hello World看....?谢谢。

4

2 回答 2

13

我在用 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 元素的计时变得更容易。

于 2012-06-28T05:08:13.370 回答
3

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

于 2012-06-15T08:50:04.443 回答