这是否可以在javascript使用python执行后加载页面?
这是我读到的一页:这是否可以在javascript使用python执行后加载页面?,javascript,python-3.x,beautifulsoup,Javascript,Python 3.x,Beautifulsoup,这是我读到的一页: <html> <head> <script type="text/javascript"> document.write("Hello World") </script> </head> <body> </body> </html> 文档。编写(“你好,世界”) 正如您所看到的,Hello World是使用javascript添加到HTML页面上的,当我使用HTML解
<html>
<head>
<script type="text/javascript">
document.write("Hello World")
</script>
</head>
<body>
</body>
</html>
文档。编写(“你好,世界”)
正如您所看到的,
Hello World
是使用javascript添加到HTML页面上的,当我使用HTML解析器,比如BeautifulSoup
来解析它时,它无法解析Hello World
,我可以解析客户端实际看到的结果。。。。?谢谢。要正确表示javascript操作后DOM的外观,您必须实际执行javascript。这必须通过一个javascript引擎和文档的DOM(而不是文本/标记)表示(通常是浏览器)来完成。我在用python编写web scraper时遇到了类似的问题,我发现与BeautifulSoup结合使用非常有用。代码最终看起来像这样:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.yoursite.com")
soup = BeautifulSoup(browser.page_source, "html.parser")
...
对于SeleniumWebDriver,在功能上还需要“等待某个DOM元素加载”,这也使得javascript元素的计时变得更容易。可能可以解析这个简单的例子,但如果不是这样,您需要将页面上的所有javascript作为一个真正的javascript引擎来运行,以查看结果。@Ted:您可能想看看这个: