« 系统故障,3天后恢复 | 首页 | 爱因斯坦评augix.com »
November 17, 2005
名人blog
新浪似乎网罗了一大帮名人写blog。我在上面看到了徐静蕾的书法,高晓松创作的rap,张海迪的英语学习方法,以及他们非常多的生活照,他们的文字很朴实,让人感觉距离很近。这些blog不一定都是他们亲自打上去的,但是他们都表示是自己的文字。
这些blog的回复非常多,徐静蕾写的初恋得到了3百多个回复,想不到徐静蕾的初恋对象不要她。这些回复大部分是表达喜爱跟支持,也有一些批评,如李 湘那里。
为了获得这些链接地址,我写了一个perl程序来处理新浪的一个网页。
<tr> <td height="19" ><span ><span ><span ><img src="http://image2.sina.com.cn/dongman/blog/t6.jpg" width="16" height="14" align="absmiddle"></span></span></span><a href="http://blog.sina.com.cn/m/xujinglei" target="_blank">徐静蕾</a><span ><span ><span ><img src="http://image2.sina.com.cn/dongman/blog/t6.jpg" width="16" height="14" align="absmiddle"></span></span></span><a href="http://blog.sina.com.cn/m/fengjicai" target="_blank">冯骥才</a><span ><span ><span ><img src="http://image2.sina.com.cn/dongman/blog/t6.jpg" width="16" height="14" align="absmiddle"><a href="http://blog.sina.com.cn/m/liuxinglong" target="_blank">刘醒龙</a><img src="http://image2.sina.com.cn/dongman/blog/t6.jpg" width="16" height="14" align="absmiddle"></span></span></span><a href="http://blog.sina.com.cn/m/zhangzhe" target="_blank">张者</a></td> </tr>
对于上面的html代码,我只想获得的信息是这样的:
<a href="http://blog.sina.com.cn/m/xujinglei" target="_blank">徐静蕾</a>按理可以利用这样的正则表达式提取信息:
/(<a .+?<\/a>)/;(使用?,是为了实现最小匹配,perl的默认匹配是贪婪匹配。) 但是这样的做法行不通,因为正则表达式遇到某些中文字符会在那里结束掉。通常的解决办法是
use utf8;但是我没有成功,我很希望有人能教教我。 最后我的解决办法就是把除
<a href="http://blog.sina.com.cn/m/xujinglei" target="_blank">徐静蕾</a>这样以外的代码都替换掉。 我的代码就是这样的:
$line=~s/<\/a>.*?<a/<\/a><a/g; $line=~s/.*?[^a]><a/<a/g; $line=~s/\/a><[^a].*?$/\/a>/g;
Posted by 西瓜 at November 17, 2005 07:34 PM
Trackback Pings
TrackBack URL for this entry:
http://www.augix.com/cgi-bin/MT/mt-tb.cgi/143
Comments
哈哈,这个太好了,我就喜欢徐静蕾~
Posted by: maggie at November 20, 2005 03:43 AM
很多人,都没听说过
Posted by: apple at November 21, 2005 05:00 PM
用 asp 编写的程序,在IE浏览器的查看是看不出来的,不清楚你是用的什么截取到这些代码的?只是说如果上面的地址没有失效的话,这些url是有用的。
正式表达式( /()/; )是什么意思,
是perl里的语言吗?
我看到你这个bolgs非常偶然,也不能记住你地址,你可以发邮件给我吗?
我的E-mial:jw031425@126.com
恭候教诲!!谢谢
Posted by: 小刁 at May 29, 2006 12:33 PM
新浪已经把原先的页面改了,现在有一个“热点博客检索页”,是个html文件,你就查看他的原代码。我用的浏览器是Safari,我不知道IE可不可以看原代码,不过我想你可以把网页保存,然后在终端里头用命令看原代码。写perl程序的目的在于提取我需要的信息,正则表达式就是专门用来定位,匹配需要的信息的。如果想学perl,这里有个中文教程。HTTTTTTTP://rony.4y.com.cn/linglong/perl5/perl5index.htm
Posted by: 西瓜 at May 29, 2006 01:05 PM