美文网首页Python四期爬虫作业
【Python爬虫】 lxml以及xpath练习

【Python爬虫】 lxml以及xpath练习

作者: d1b0f55d8efb | 来源:发表于2017-08-30 15:11 被阅读89次

一、lxml模块介绍及安装,Xpath语言了解
1. lxml模块是python爬虫中的一个解析器,Xpath是一门在xml文档中根据节点查找信息的语言。
可以参考菜鸟联盟学习xpath
2. 安装 pip install lxml
3.网页知识了解xpath节点及常用提取属性
标签: div ul li a table tr td th p span
节点: 树形结构 父 子 同胞 先辈 后代
提取数据常用的属性:标签/text()
a标签:文本提取a/text() 超链接(也就是跳转的url) 提取a/href
二、
lxml模块下的xpath解析提取
将html源码转换为element html对象,变量selector
from lxml import etree
selector=etree.HTML(网页源码)
数据变量1=selector.xpat('xpath表达式')

from lxml import etree
file=open('/Users/shixin/Downloads/10-lxml模块及xpath解析/10-lxml模块及xpath解析/xpath.html','r',encoding='utf-8')
html = file.read()
#print(html)  #获取的HTML
selector = etree.HTML(html)
#获取title
title = selector.xpath('//title/text()')[0]
print(title)
h1 = selector.xpath('//h1/text()')[0].strip()  #列表索引  然后去除空格
print(h1)
haha= selector.xpath('//div[@class="works"]/text()') #class前加@
print(haha)
WX20170830-143312@2x.png

结构化提取(for循环,变量xpath的写法):

infos=selector.xpath('//a')
print(len(infos))
for info in infos:
    a_text=info.xpath('text()')[0]
    a_href=info.xpath('@href')[0]
    print(a_text,a_href)
WX20170830-145209@2x.png

练习

一、div标签文本提取
将学习视频中xpath.html文件中div标签下文本值
“第一个div” ,“第二个div” 使用xpath结构化提取并打印输出
二、ul标签文本提取
将xpath.html文件中ul标签下“流程” ,“xpath学习”,“流程2”文本值
使用xpath结构化提取并打印输出
三、过滤标签
将xpath.html文件中的第一个div下的前3个a标签的文本及超链接
使用xpath结构化提取,打印输出
四、requests模块和lxml&xpath结合提取数据
结合上节课requests模块知识,将阳光电影网导航栏的文本及超链接结构化提取

divs=selector.xpath('//div[@class="works"]/text()')
print(divs)

uls=selector.xpath('//ul/text()')
print(uls)

infos2=selector.xpath('//div[@class="works"][1]/ul[@class="title"][1]/li[position()<4]/a')
for infos2 in infos2:
    a_text = infos2.xpath('text()')[0]
    a_href=infos2.xpath('@href')[0]
    print(a_text,a_href)
WX20170830-151227@2x.png

相关文章

网友评论

    本文标题:【Python爬虫】 lxml以及xpath练习

    本文链接:https://www.haomeiwen.com/subject/ihhtjxtx.html