这是我阅读的页面:
<html>
<head>
<script type="text/javascript">
document.write("Hello World")
</script>
</head>
<body>
</body>
</html>
如您所见,使用 javascript 在 HTML 页面上添加了 ,当我Hello World
使用 HTML 解析器时,就像BeautifulSoup
解析它一样,它无法解析Hello World
看....?谢谢。
这是我阅读的页面:
<html>
<head>
<script type="text/javascript">
document.write("Hello World")
</script>
</head>
<body>
</body>
</html>
如您所见,使用 javascript 在 HTML 页面上添加了 ,当我Hello World
使用 HTML 解析器时,就像BeautifulSoup
解析它一样,它无法解析Hello World
看....?谢谢。
我在用 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 元素的计时变得更容易。
为了正确表示 DOM 在 javascript 操作后的样子,您必须实际执行 javascript。这必须通过具有 javascript 引擎和文档的 DOM(而不是文本/标记)表示的东西来完成 - 通常是浏览器。