作者kalijason (天凉好个秋)
看板Google
标题[心得] 将网站转成Gadget的心得分享
时间Wed Jul 25 05:04:43 2007
相信现在每个人都需要在网路上查寻资料
字典、捷运、网路拍卖、火车时刻表
但是每查一个东西都需要开一个网页
穿越过一大堆广告、不必要的文字或图片
这时候如果有同样功能的Gadget用就方便多了
在这里分享一下我将一些查寻网站转成gadget的一些程式设计上的心得
____________________________________________________
1.适不适合转成gadget使用?
并不是所有的网站都适合转成gadget,第一个考虑到的就是版面的问题
因为在iGoogle的用意就是将不同的工具浓缩放在一起
若是某些网站功能,像拍卖网、购物网这种需要很大的版面来显示图片
而又没有办法精简,就算精简了,使用者也用起来绑手绑脚
2.该网页资料截取的难易度?
将网页转成gadget的目的必定是要将我们需要的资料从庞大的HTML中截取出来
然而最困难的步骤,就是在於你必须写一个程式去读取别人网页的source code
若是该source code产生没有规律性,乱七八糟,这时就要写一大堆判断去避开
不需要的资料
3.主要技术
(API部份请参照Gadget Javascript程式库
http://tinyurl.com/yownhp)
content type选择:
Gadget的内容有三种类型 html 、 html-inline、URL
将网站放到gadget上最简单的方法就是使用URL,但是这样一来我们就没有办法把
source code抓出来精简後再呈现,所以URL只适用於原本就设计成很小的网页
而这篇文章的重点是要将大版面的网页转成小gadget,
因此建议content type使用 html 类型
设计步骤:
如果某些网站若没有用到特殊的技术,只有简单的HTML,不用cookie,session
例如 : yahoo字典、缩网址 等等 ,那麽处理起来都是大同小异
不外乎以下这几个步骤
------------------------------------------------------------------
A.设计你的Gadget版面 -> B.抓取该原始网页原始码 -> C.截取需要的资料
-> D呈现版面
------------------------------------------------------------------
最困难的应该在於A和C的步骤
至於B步骤:
iGoogle提供的Javascript API中有个function 叫 _IG_FetchContent()
只需要将网站URL丢进去这个function 会帮你把原始码抓出来
D步骤:
只需要在资料处理完时 用_gel()改掉HTML,show 出结果就好
举例: yahoo字典
这里举一个yahoo字典的例子 当我输入要查的单字 例如"test" 再按送出
会传到这个网页
http://tw.dictionary.yahoo.com/search?ei=UTF-8&p=test
而网址後的test即是我要查的单字 因此这里可以设个变数去存使用者要查寻的
单字然後再把它和"
http://tw.dictionary.yahoo.com/search?ei=UTF-8&p="
接起来之後再丢进IG_FetchContent()就可以得到查寻结果的source code了
抓到source code後就要做精简 运用.indexOf() .substring() 取出需要的地方
整理好後再show出来
4.版权问题
小弟在发表这篇文章前想了很久,因为我不清楚这种直接用HTTP get、post截取对方
的web算不算侵权,还是像crawler、搜寻引擎一样,凭良心看要不要遵守对方的
robot.txt,不过我想无论如何继然是要用人家的东西,所以千万还是要尊重一下版权
最少还是要注明一下所有权才是...
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.14.35
1F:推 jhc0723:遵循 robots.txt的rule罗 XD 07/25 05:05
2F:推 antontw:好文推一下 07/25 14:01
3F:推 raychen:在iGoogle目录搜寻一个叫做GadgetMaker (webclip)的小工具 07/25 21:27
4F:→ raychen:可以直接把网页中喜欢的地方剪出来当作 Gadget 07/25 21:27
5F:推 kalijason:嗯..GadgetMaker不错用 但只能剪出Web中某个block 07/26 17:53
6F:→ kalijason:如果资料分散在网页各部 就没有办法依照自己想法排罗 07/26 17:54
7F:推 BBMak:感谢楼楼楼上XD,我刚刚试用了觉得蛮不错的 07/27 12:50