【问题标题】:How to get javascript output in python BeautifulSoup or any other module如何在 python BeautifulSoup 或任何其他模块中获取 javascript 输出
【发布时间】:2015-09-04 04:45:39
【问题描述】:

在尝试制作爬虫时,我发现一个网站在其代码中大量使用 javascript,是否可以检索脚本的输出,例如

<html>
<head>
<title>Python</title>
</head>
<body>
<script type="text/javascript" src='test.js'></script>
<p> some stuff <br>
more stuff <br>
code <br>
video <br>
picture <br>
movie <br>
. <br>
. <br>
. <br>
</p>
<span>Your Number is:  </span>
<script type="text/javascript">document.write(math(5, 10, 15));</script>
</body>
</html>

“test.js”在哪里:

function math (a, b, c) {return a * b * c * c * a * b * c + a + b +c - a;}

当我使用 BeautifulSoup 时,它会显示代码本身,即:

<script type="text/javascript">document.write(math(5, 10, 15));</script>

但是我需要得到“你的号码是:8437480”,我可以通过使用 soup.span.get_text() 获取跨度之间的文本,但是我无法获取脚本的编号。

【问题讨论】:

    标签: javascript python html web-scraping beautifulsoup


    【解决方案1】:

    Beautifulsoup 无法执行 JavaScript 代码。我建议您将 PhantomJS 之类的内容集成到您的 scraper 中。如果你可以放弃 python,你 scraper 在 PhantomJS

    【讨论】:

    • 重点是用python做的,是不是有一个可以在python中执行javascript的模块,其中函数来自源代码之外,(我知道如何将它包含在代码中,但这会很痛苦)编辑:没关系,我发现了一个叫做 Ghost.py 的东西,我会进一步调查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多