LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 733|回复: 3

curl --> .js ?HowTo?

[复制链接]
发表于 2009-5-1 23:23:46 | 显示全部楼层 |阅读模式

  1. $ curl -s [url]http://www.weather.com.cn/html/weather/101010100.shtml[/url]
复制代码


这个用浏览器直接访问可以看到 ‘实时天气’ :


但是用 curl 直接抓的这个部分不能直接显示
而是变成了一句指向javascript的代码
  1. <script language="javaScript" type="text/javascript" src="../../m/j/sk.js" /> </script>
复制代码


哪位仁兄知道怎么直接用curl获得这个js的结果。。也就是直接获得实时天气?
发表于 2009-5-2 00:03:03 | 显示全部楼层
看这个:http://www.weather.com.cn/static/html/weather_cj.shtml
实际过程就是读取信息(应该是xml文件),然后以一种自己喜欢的方式展现出信息。
可以搞个widget,里面包含其js代码,定制下外观,可以放桌面或者其他想要的地方
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-2 01:06:55 | 显示全部楼层
@jobinson99
你说的这个也不错~可惜我不知道怎么用这些代码。。除了在firefox里边打开以外别的用法就不会了。。

不过,你说的这个不是实时的阿,而且我也没能通过这个搞明白怎么用这个js... :-\

其实我只是想要一个像下面这段一样简单粗暴的一行代码,直接从这个网站抓取实时天气。。
  1. echo "+******** 北京 ********+"
  2. echo "++* 未来一周天气预报 *++"
  3. curl -s http://qq.ip138.com/weather/beijing/BeiJing.htm|iconv -f gbk -t utf8|perl -ne 'if (/\<td\>/&&!/img src/&&!/\<a/&&!/\<td\>\<\/td\>/) {chomp;/\<td\>(.*?)\<\/td\>/; print "$1;";} if (/\<td\>/&&/img src/&&!/\<a/) {chomp;/\<br\/\>(.*?)\<\/td\>/; print "$1;";} if (/tdc1/&&!/width/) {chomp;/.*?(\d\d\d\d-.*?-.*?)\ .*?/; print "$1;";} ' | awk -F \; '{gsub(/ /,"");gsub(/℃/,"");printf("%s:%s::%s::%s\n%s:%s::%s::%s\n%s:%s::%s::%s\n%s:%s::%s::%s\n%s:%s::%s::%s\n%s:%s::%s::%s\n%s:%s::%s::%s\n",$1,$8,$15,$22,$2,$9,$16,$23,$3,$10,$17,$24,$4,$11,$18,$25,$5,$12,$19,$26,$6,$13,$20,$27,$7,$14,$21,$28)}'
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-5-2 03:43:04 | 显示全部楼层
实时不实时只是间隔时间的长短,如果间隔时间短,就可以看成实时的了,不过天气这种东西,除非热带地区,否则也不需要间隔小于1小时的。

你说的简单粗暴其实和我说的是一样道理的,只不过你不了解网络方式,所以采用这种强硬破解的办法。有个叫问天网的,也是提供天气预报的,一般是在早上6点左右更新?这样每天读一次其xml文件,作相关的GUI显示,就搞定了(当然,你也可以直接查看xml文件,也很直观)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表