为BBEdit'抓取HTML'脚本

更新:我写了一篇本文的更新版本和随附的脚本

早在1996年,Dan Crevier为BBEdit编写了一个漂亮的插件HTML GrabberIt’s a simple but useful little thing: choose its menu item and it pops up a dialog box into which you enter a URL; click a button and the plug-in fetches the contents of the URL via HTTP, then presents the results in a new BBEdit text window.

有点像Web浏览器中的View Source命令,除非您已经在BBEdit中工作,否则更方便更好的是,HTML Grabber还允许您查看HTTP标头,这在调试CGI时非常有用。

该插件仍可在BBEdit 6.5中使用,但仅适用于Mac OS 9但是,Mac OS X版本可以用AppleScript编写,将HTTP工作传递给命令行卷曲效用(因此,该脚本在Mac OS 9中不起作用。)

这是脚本将其粘贴到脚本编辑器中,并将其作为已编译的AppleScript保存在“BBEdit Support”文件夹的“Scripts”文件夹中。

property my_url : ""

tell application "BBEdit"
    display dialog ¬
        "URL:" default answer my_url ¬
        buttons {"Cancel", "Grab"} default button 2
    set my_url to the text returned of the result
    -- "-i" tells curl to include the headers
    set my_text to do shell script ("curl -i " & my_url)
    make new text window with properties {contents:my_text}
end tell

这种AppleScript / shell混合显示了Mac OS X的最佳状态该做shell脚本命令将整个Unix命令行工具集放在您的指尖 - 虽然命令行本身不能提供良好的用户界面,但它可以非常容易使用程序设计接口。

值得注意的是卷曲is flexible enough to accept URLs without a protocol specifier; you can just type “www.gazogooz.com” instead of “http://www.gazogooz.com”.

这个怎么运作

my_url是一个包含我们正在获取的URL的字符串因为它是属性,所以下次运行脚本时将记住您输入的最后一个URL它默认为空字符串。

显示对话框弹出一个带有文本输入字段的对话框文本输入字段的内容设置为值my_url. After the dialog is dismissed, AppleScript’s magic结果变量包含值记录,包括单击的按钮的名称和输入字段中的文本我们不需要检查单击了哪个按钮,因为显示对话框命令足够聪明,可以知道“取消”按钮的含义 - 如果运行脚本并选择“取消”,脚本会在对话框关闭后立即终止。

更新后的内容my_url,我们使用做shell脚本用于调用命令行实用程序的命令卷曲如果您不想在脚本的输出中看到HTTP标头,请删除“-i”开关该做shell脚本command将shell的输出作为字符串返回。

最后,我们创建一个新的BBEdit文本窗口,其中包含的内容卷曲产量What’s cool about setting the contents of the window as a property is that if you’re using BBEdit 6.5, BBEdit will guess the source language of the text, and will apply HTML syntax coloring (assuming the URL you fetched was for an HTML document), even if HTML isn’t your default language for new windows.

如果相反我们写了这样的东西:

make new text window
    set contents of text window 1 to my_text

然后BBEdit不会自动猜测语言(如果您保存了新窗口,但通常不会保存此脚本的结果,因此您必须手动将语言设置为HTML。)


[帽子提示格雷格哈内克提醒将这个脚本放在一起。]

以前: 归咎于夸克
下一个: Unix切换器