爬虫神器xpath的用法(一)
1、如果你没有安装lxml,请运行pip install lxml或者easy_install lxml安装,如果在安装过程中失败的话,
是因为lxml需要依赖某些库文件,具体可以问下度娘,这里不再赘述。
2、安装成功后,请看下面测试代码
//:定位根节点
/:往下层寻找
/text(): 提取文本内容
/@xxx: 提取属性内容
#encoding=utf-8 from lxml import etree html = ''' <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>测试-常规用法</title> </head> <body> <div id="content"> <ul id="useful"> <li>这是第一条信息</li> <li>这是第二条信息</li> <li>这是第三条信息</li> </ul> <ul id="useless"> <li>不需要的信息1</li> <li>不需要的信息2</li> <li>不需要的信息3</li> </ul> <div id="url"> <a href="http://www.meilishuo.com">美丽说</a> <a href="http://www.meilishuo.com" title="美丽说流行款">美丽说只做正确流行款</a> </div> </div> </body> </html> ''' selector = etree.HTML(html) #提取文本,获取根目录下div且id=content下面的ul且id=useful的文本内容 content = selector.xpath('//div[@id="content"]/ul[@id="useful"]/li/text()') for each in content: print each #提取属性 获取根目录下a标签且属性为href的内容,如果不指定则返回为list link = selector.xpath('//a/@href') print link title = selector.xpath('//a/@title') print title[0]
将打印出如下信息:
//提取文本属性的输出:
这是第一条信息
这是第二条信息
这是第三条信息
//提起属性的输出:
['http://www.meilishuo.com', 'http://www.meilishuo.com']
美丽说流行款