不使用浏览器执行Javascript
在我正在开发的应用程序中,我从服务器下载了我的一个网页,然后解析代码以获取信息。我正在使用不使用浏览器执行Javascript,javascript,html,cocoa-touch,cocoa,asihttprequest,Javascript,Html,Cocoa Touch,Cocoa,Asihttprequest,在我正在开发的应用程序中,我从服务器下载了我的一个网页,然后解析代码以获取信息。我正在使用ASIHTTPRequest从服务器获取代码。问题是网页使用Javascript在页面上设置一些文本,而ASIHTTPRequest从服务器中提取代码,因此Javascript永远不会执行,因此网页缺少信息。有没有一种简单的方法可以在没有浏览器的情况下执行Javascript,从而让它更新代码?另外,目前我正在为OSX 10.9而不是iOS开发应用程序。没有浏览器,您无法在网页上执行javascript。浏
ASIHTTPRequest
从服务器获取代码。问题是网页使用Javascript在页面上设置一些文本,而ASIHTTPRequest
从服务器中提取代码,因此Javascript永远不会执行,因此网页缺少信息。有没有一种简单的方法可以在没有浏览器的情况下执行Javascript,从而让它更新代码?另外,目前我正在为OSX 10.9而不是iOS开发应用程序。没有浏览器,您无法在网页上执行javascript。浏览器正是呈现网页并让代码与之交互的软件。这不是ASIHTTPRequest所能做到的
但是,您可以使用基本上是无头且可编写脚本的浏览器。但在你的应用程序中打包可能很棘手
或者,为了留在Cocoa领域,您可以加载一个包含您想要的页面的WebView,而不在屏幕上显示它。然后可以在该WebView中执行javascript以返回数据
然而,这似乎是个坏主意。下载页面及其所有资产、解析和呈现页面,然后执行javascript是一项缓慢且内存密集的操作。如果您可以让服务器只提供您想要的数据,而不必运行任何复杂的客户端脚本,那么它将变得更加干净
在不知道自己想做什么的情况下,很难给出更多建议,但请帮自己一个忙,重新思考一下您的策略。R编程也会出现这个问题。R
readLines()
函数将愉快地接受一个URL,并将网页吸收到一个内部字符串向量中。但是,如果该网页是javascript,则脚本不会运行。因此,文本可能与实际浏览器中同一网页上显示的内容完全不同
幻像可能也是解决方案。我不熟悉OSX,但应该有一种方法使用隐藏的浏览器窗口。我猜你可以使用WebKIT框架,就像OS席中的很多应用程序重新思考我的策略,但我最终还是用幻像来结束。它使用起来相当简单。我只是使用了一个NSTask来处理与我编写的脚本的接口。