我的任务是使用 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 中):
- 请求给定的 url
- 等待 document.ready(function...) 将完成。
- 执行我的 JS 代码(就像在浏览器中一样)。
- 获取 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()
Note:你的脚本必须返回一些东西才能得到结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)