gpt4 book ai didi

javascript - 从 Python 在页面上执行 JS 代码

转载 作者:行者123 更新时间:2023-11-30 11:37:07 24 4
gpt4 key购买 nike

我的任务是使用 Python 从任何网页中获取命名函数列表。

我有一个使用 JavaScript 编写的脚本。它满足了我的需要。

加载页面后,我可以从 JS 控制台运行脚本(例如,从 GoogleChrome 中的开发工具)。结果是函数名称数组。好吧,但我转到页面并手动从浏览器执行脚本。但问题是从 Python 做同样的事情。它看起来像这样:

def get_named_functions_list(url):
myscript = settings.get_js_code() # here I get script that I told above

tool.open(url)

while not tool.document.READY: # here I wait while the page will completely loaded
pass

js_result = tool.execute_from_console(myscript)

return list(js_result.values())

那么,Python中有没有一种工具可以帮助自动解决问题呢?

更新:为了更清楚,我可以将任务划分为子任务列表(在 Python 中):

  1. 请求给定的url
  2. 等待 document.ready(function...) 完成。
  3. 执行我的 JS 代码(就像在浏览器中一样)。
  4. 获取 JS 代码返回的结果。

最佳答案

我已经使用 selenium 解决了这个问题.

然后我下载了 PhantomJS 驱动程序以在没有浏览器窗口的情况下使用 selenium,并将其添加到 PATH。

最后,我使用以下 Python 脚本:

from selenium import webdriver

myscript = settings.get_js_code() # here I get content of *.js file
driver = webdriver.PhantomJS()
driver.get(url)
result = driver.execute_script(myscript)
driver.quit()

注意:您的脚本必须返回一些东西才能得到结果。

关于javascript - 从 Python 在页面上执行 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44010059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com