爬虫神器xpath的用法(二)
2016-03-06 10:52
106 查看
爬取网页内容的时候,往往网页标签比较复杂,对于这种情况,需要用xpath的starts-with和string(.)功能属性来处理,具体看事例
输出:
需要的内容1
需要的内容2
需要的内容3
我左青龙,右白虎,上朱雀,下玄武。老牛在当中,龙头在胸口。
#encoding=utf-8 from lxml import etree html1 = ''' <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div id="test-1">需要的内容1</div> <div id="test-2">需要的内容2</div> <div id="testfault">需要的内容3</div> </body> </html> ''' #提取id属性为test开头的的内容,需要使用xpath的start-with属性 selector = etree.HTML(html1) content = selector.xpath('//div[starts-with(@id,"test")]/text()') for each in content: print each #提取多个标签层级的内容,需要使用xpath的string(.)将内容转为字符串再获取 html2 = ''' <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div id="test3"> 我左青龙, <span id="tiger"> 右白虎, <ul>上朱雀, <li>下玄武。</li> </ul> 老牛在当中, </span> 龙头在胸口。 </div> </body> </html> ''' selector1 = etree.HTML(html2) data = selector1.xpath('//div[@id="test3"]')[0] info = data.xpath('string(.)') content = info.replace('\n','').replace(' ','') print content
输出:
需要的内容1
需要的内容2
需要的内容3
我左青龙,右白虎,上朱雀,下玄武。老牛在当中,龙头在胸口。
相关文章推荐
- IOS Int 转NSNumber NSString转int
- codeforces 55D. Beautiful numbers (数位dp)
- DOM下的节点属性和操作小结
- HDOJ——2002计算两点间的距离(java版)
- 强烈推荐android studio用的几个插件
- hdu 5080 2014ACM/ICPC鞍山K题 polya计数
- string对象
- 排序算法之带二分查找的插入排序
- 支持向量机(SVM)基础
- linux命令–date
- 基本数据类型
- 239.255.255.250:1900
- Spring MVC 数据绑定多个对象
- 2016-03-06踏青
- 控件的布局动画
- Java 类加载器
- 高斯混合模型(GMM)实现和可视化
- 插入排序
- hdu 5635 LCP Array【思维】
- //快排思想第k大