免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4155 | 回复: 6
打印 上一主题 下一主题

如何精确提取网页源码中的链接? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-06 21:50 |只看该作者 |倒序浏览
大家好,我是一名py初学者,请多指教。
正如标题上说的 如何精确提网页源码中的链接地址,我苦恼的是网页中的链接地址并不完整、但又不明白是怎么回事所以请大家帮忙指导下

大家看:
<br/>04月06日<br/>21:29-<a href="?sa=d2733914t124v71&amp;cid=785&amp;vt=1">财政部:将出台资源税改革方案</a><br/>21:08-<a href="?sa=d2733907t124v71&amp;cid=785&amp;vt=1">陕西省长将率千人访问团赴台</a><br/>20:48-<a href="?sa=d2733894t124v71&amp;cid=785&amp;vt=1">沈阳经济区获批改革实验区</a><br/>20:45-<a href="?sa=d2733897t124v71&amp;cid=785&amp;vt=1">福建货车与挂车相撞致5人死亡</a><br/>20:41-<a href="?sa=d2733889t124v71&amp;cid=785&amp;vt=1">卫生部通报山西疫苗致死事件</a><br/>

我的问题是,提取【<a href="?sa=d2733914t124v71&amp;cid=785&amp;vt=1">财政部:将出台资源税改革方案】这个标题的链接 但是 你也看到了 链接不完整,
完整的是【http://3g.sina.com.cn/3g/news/?s ... mp;cid=785&vt=1

请问大家怎样处理才能得到完整的效果???
---------------------------------------------------------------------------------------------
我尝试用已知的当前页面地址
http://3g.sina.com.cn/3g/news/?s ... &pos=8&vt=1
和这个wml代码比较处理
【<a href="?sa=d2733914t124v71&amp;cid=785&amp;vt=1">】
------------------------------------------------------------------------------------------

但是这太过局限,用在其他类型的上面就无用了。

如何像浏览器那样在任何类型的上面都可以解析得到正确的链接地址,这个要怎么弄?

论坛徽章:
0
2 [报告]
发表于 2010-04-07 00:43 |只看该作者
你的问题,其实是正则的问题,shell版有很多这样的提问了,可以举一反三的。
建议用sed或awk效率可能更高。

论坛徽章:
0
3 [报告]
发表于 2010-04-07 09:18 |只看该作者
你想干吗?如果仅仅为了可以采集到网址,你可以用前面固定的部分,和源代码里变量的部分,组合在一起。
如果还有什么不明白,gao2000@139.com
晚上帮你

论坛徽章:
0
4 [报告]
发表于 2010-04-07 10:15 |只看该作者
你尝试的这个方法就是对的呀,先判断你抓到的链接是不是绝对地址,我想只要判断是不是以"http://"开头就可以了吧,如果是绝对地址,就直接用,如果是相对地址,就和当前页面地址的目录拼接一下。。。

论坛徽章:
0
5 [报告]
发表于 2010-04-07 11:35 |只看该作者
比如在
http://3g.sina.com.cn/3g/news/?s ... mp;cid=785&vt=1

抓取,取出连接

?sa=d2733897t124v71&amp;cid=785&amp;vt=1

然后注意要unescape

变成
?sa=d2733897t124v71&cid=785&vt=1

然后用urlparse.urljoin('http://3g.sina.com.cn/3g/news/?sa=d2733914t124v71&cid=785&vt=1','?sa=d2733897t124v71&cid=785&vt=1')

得到的http://3g.sina.com.cn/3g/news/?s ... mp;cid=785&vt=1

就是最终的url

论坛徽章:
0
6 [报告]
发表于 2010-04-07 12:18 |只看该作者
回复 3# wqjwftcaqr


    谢谢

论坛徽章:
0
7 [报告]
发表于 2010-04-07 12:19 |只看该作者
回复 5# 3227049


    这个强,谢谢哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP