« 系统故障,3天后恢复 | 首页 | 爱因斯坦评augix.com »

November 17, 2005

名人blog

尚 进   猛小蛇   潘石屹   秦 岚   小麦   李多钰   王小枪   方刚   夏青   孔铁山   李 琳   李承鹏   黑楠   戴军   王小山   林长治   张栋伟   孙睿   张静君   那 威   虹影   徐小平   蓝怀恩   陈染   张守刚   郑春峰   李国训   张巨睿   任志强   韩寒   王石   康建中   丁志锋   陆天明   吴小莉   冯一刀   项立刚   范冰冰   王小列   素黑   章剑锋   阎爱华   杨心远   马德兴   苗 圃   李方   伍洲彤   杨 非   叶倾城   吕宁思   邱华栋   余华   刘震云   姜培琳   闾丘露薇   王刚   孙冕   张者   海 岩   残雪   李静   张海迪   棉 棉   吴祚来   炎炎      肖锋   张靓颖   朱伟   刘醒龙   易宪容   行者悟能   高晓松   郭敬明   莫小邪   李 湘   老 榕   胡续冬   高友谦   苗炜   骆爽   蔡骏   常习习   邹剑宇   朱大可   王海鸰   张静初   余秋雨   黄建华   金错刀   王跃文   慕容雪村   潘燕辉   瓜尔加   春树   杨洋   IT99    王辉耀   章剑峰   冯骥才   叶永烈   刘炜   南香红   赵波   萧三郎   陆新之   秦岚   爱王崴   林毅夫   谭军波   顾海滨   戴鹏飞   韩乔生   罗海琼   周国平   董路   科尔沁夫   和菜头   徐静蕾  

新浪似乎网罗了一大帮名人写blog。我在上面看到了徐静蕾的书法,高晓松创作的rap,张海迪的英语学习方法,以及他们非常多的生活照,他们的文字很朴实,让人感觉距离很近。这些blog不一定都是他们亲自打上去的,但是他们都表示是自己的文字。

这些blog的回复非常多,徐静蕾写的初恋得到了3百多个回复,想不到徐静蕾的初恋对象不要她。这些回复大部分是表达喜爱跟支持,也有一些批评,如李 湘那里。

为了获得这些链接地址,我写了一个perl程序来处理新浪的一个网页。

从网页中截取到这样的html代码:

<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


Post a comment




Remember Me?