如何使用 Beautiful Soup 从 python 代码中获取 javascript 函数的结果

How to get the result of a javascript function from a python code using Beautiful Soup?

本文关键字:javascript 获取 函数 结果 代码 Beautiful 何使用 Soup python      更新时间:2023-09-26

我想在Python中使用Beautiful Soup从网站上抓取数据。站点会根据用户的选择更改下拉菜单的值。更改下拉菜单的值时没有 api 调用。仔细观察后,我观察到有一个 javascript 函数在内部调用以获取下拉菜单的值。我的问题是该下拉菜单的值在页面源代码中不存在。它们是通过调用 js 函数获得的,但没有 api 调用,我无法请求该值。谁能告诉我如何从 python 代码调用 javascript 函数。我正在使用美丽汤进行网页抓取。

谢谢

你可能对 Pyv8 模块感兴趣;它允许你在 Python 代码中嵌入一个 JavaScript 解释器,但不包括浏览器 DOM。我在为什么美丽汤找不到特定的表类中举了一个简短的例子?

对于更广泛地使用浏览器功能的javascript,您可能更喜欢 ghost.py,这是一个带有Python API的基于Webkit的无头浏览器。

如果做不到这一点,如果你提供了页面 url,我们可以看看 javascript,看看是否有一种快速的方法可以在 Python 中复制调用。

你不能。BeautifulSoup是一个HTML解析器。

你想做的不仅仅是解析HTML;你想评估Javascript。

也许你正在寻找一个支持Javascript的浏览器,比如Selenium。

Beautiful Soup 不能用于解析 JavaScript 加载的内容。你应该使用类似硒的东西