python xpath模块安装_【Python爬虫】 lxml以及xpath练习

一、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)

c5a650f948c9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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)

c5a650f948c9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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)

c5a650f948c9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

WX20170830-151227@2x.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值