分页: 1 / 1

想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-13 23:25
543082593
一直感觉 baidu baike不错
每次 查个什么东西 一般都去百度baike 不过很烦 每次都要打开浏览器
我知道 有个 w3m 终端下的浏览器(这个 真的太强大了)
关于网络方面的脚本我一窍不通 只会写点简单的本机脚本玩下
各位大大 能否帮小弟一把 不胜感激
我就知道个 wget呵呵

能够这样就OK了
./baike.sh michael jackson
然后就可以把内容显示到终端 或者 存进 一个文本中
最好能向 w3m -dump URL | cat - > URL.txt 那样的文本效果(也就是按照网页内容格式的文本)
:em01

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 0:52
xzap
我是菜鸟,我不会,等着高手来解答

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 8:28
eexpress
● baike.pl w3m
实际链接:http://baike.baidu.com/view/455886.htm
w3m浏览百度首页
w3m是个开放源代码的文字式网页浏览器。
w3m支援表格、框架、SSL连线、颜色。如果是在适当的terminal上,甚至还支援“inlineimage”。这个软件通常尽量呈现出网页本来的编排。
“w3m”这名字是来自“WWW-wo-Miru”,就是日文的“看WWW”之义。
看懂干嘛。用就是了。

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 13:24
O_O_BOT
wget grep awk 就是了

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 14:10
xzap
果然有高手,不过都回答的不详细啊。我来说下自己的想法
1、将要查询的词条用od转码
2、用搜索词条功能查找词条 wget http://baike.baidu.com/w?ct=17&lm=0&tn= ... mit=search
3、根据上面wget 下来的信息用grep来判断是否存在这样的词条,不存在的时候百度会显示“百度百科尚未收录词条”这样就可以直接输出不存在词条的信息。也可以推送第一条最接近的。
4、如果存在那基本就是第一条,用grep sed awk 把链接截取出来再wget就可以了
5、对wget下来的内容格式进行处理便于输出
6、完工

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 14:15
oneleaf

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 14:18
delectate
mj哦!

不过这个东西还是很方便的。

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-14 16:06
543082593
这个确实行
汗啊 不过 为什么 在浏览器中
输入 http://baike.baidu.com/searchword/?word ... n&pic=1的时候 它直接跳转了
http://baike.baidu.com/view/4039.htm
也就是 http://baike.baidu.com/searchword/?word ... kson&pic=1 你是怎么知道的 ?
who can tell me? :em06

Re: 想写个SHELL脚本 来获取 百度百科 (ee那个 perl的看不懂 )

发表于 : 2009-09-15 17:44
543082593
呵呵 参考 以上各位的
更改了一下 终于实现了百度百科的功能 呵呵 谢谢了
下面 分享一下下 (很简陋)

代码: 全选

  #!/bin/bash
  #echo "$@" | sed 's# #+#g'
  searchword=`echo $* | sed 's# #+#g'`
  searchword=`echo "$searchword" | iconv -f utf8 -t gbk | uni2ascii -a J`
  URL="http://baike.baidu.com/searchword/?word="$searchword"&pic=1"
  w3m -no-cookie $URL
主要是 searchword中如果是 如果参数中有空格的话 比如 good study good time 那么在searchword中就是这种形式才行 good+study+good+time
还有 如果输入中文的时候 用到了 uni2ascii(这个是参照 ee的那个perl脚本中的 THX)
thx各位

使用的时候 比如想百科下 周杰伦 ./baike.sh 周杰伦
还有一点要注意的是 参数中 特殊字符的问题
比如 我注意到 ./baike.sh they don't care about us
这里有问题了 不会得到结果 这是因为 don't中的 ' 是个特殊字符 要转义
这样就OK了 ./baike.sh they don\'t care about us