提取网易的链接及链接名称
2013-11-07 14:02
316 查看
import urllib2,re #读取网页信息 def getcontent(url): request=urllib2.Request(url) f=urllib2.urlopen(request) content= f.read() return content #使用re提取所需信息 def pars_content(url): content = getcontent(url) p=re.compile('<a.*?href="(.*?)"(.*?")?>(.*?)<') ## print p.search(content).groups(2,3) result=p.findall(content) for link,middle,text in result: print link,'-->',text pars_content("http://www.163.com") ''' url测试数据: <a class="ntes-nav-entry-wide c-fl" target="_self" href="http://www.163.com/" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.163.com/');" title="把网易设为首页">设为首页</a> <a href="http://reg.163.com/" class="ntes-nav-login-title">登录</a> <ahref="http://reg.163.com/" class="ntes-nav-login-title">登录</a> <a href="http://m.163.com/newsapp/#f=topnav"><span><em class="ntes-nav-app-newsapp">网易新闻</em></span></a></li> <a href="http://m.163.com/#f=topnav" class="ntes-nav-select-title ntes-nav-entry-bgblack JS_NTES_LOG_FE" data-module-name="n_topnavapp">应用<em class="ntes-nav-select-arr"></em></a> <a href="http://news.163.com/special/i/000117JD/index_history.html">历史回顾</a> 正则解释: .*? 用于 匹配a 与href 之间的内容,如空格、制表符,其他字符等 href=" 匹配该字符串后面内容 (.*?) 对href="后面的内容放入组1中 (.*?")?> 匹配链接后面的内容,如第5条测试数据中的<span><em class="ntes-nav-app-newsapp">,该匹配出现0或1次 (.*?)< 匹配链接名称,该链接名称后面是< '''
相关文章推荐
- Linux网卡高级命令
- 提取网易的链接及链接名称 分类: python 小练习 正则表达式 2013-11-07 14:02 382人阅读 评论(0) 收藏
- jquery 操作radio dropdownlist 和 checkbox
- 系统架构师历年论文题目
- java 循环数组
- [css layout][0]基于同一个html文件, 通过css设置不同布局
- 第十一周项目4-输出满足n=a!+b!+c!的所有三位数
- 营销知识
- UVA 10465 —— 完全背包
- ORA-00018: maximum number of sessions exceeded
- 正交匹配追踪 OMP 算法原理分析
- iOS开发-通知NSNotification
- Struts1中的处理流程
- Task和Activity相关—Activity各种属性的解释(转载)
- sqlite3x 的基本用法
- dialog dismiss和cancle的区别
- sharepoint_study_12
- 选择几何图形
- hadoop安装详解
- Windows下查看进程与线程的相关工具