Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是否可以在javascript使用python执行后加载页面?_Javascript_Python 3.x_Beautifulsoup - Fatal编程技术网

这是否可以在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:您可能想看看这个: