博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0开始学爬虫3之xpath的介绍和使用
阅读量:4564 次
发布时间:2019-06-08

本文共 2250 字,大约阅读时间需要 7 分钟。

从0开始学爬虫3之xpath的介绍和使用

Xpath:一种HTML和XML的查询语言,它能在XML和HTML的树状结构中寻找节点

安装xpath:

pip install lxml

HTML

超文本标记语言(HyperText Mark-up Language),是一种规范,一种标准,是构成网页文档的主要语言

URL

统一资源定位器(Uniform Resource Locator),互联网上的每个文件都有一个唯一的URL,它包含的信息之处文件的位置以及浏览器应该怎么处理它

 

Xpath的使用语法:

获取文本:

//标签1[@属性1=”属性值1”]/标签2[@属性2=”属性值2”]/…/text()

获取属性值

//标签1[@属性1=”属性值1”]/标签2[@属性2=”属性值2”]/…/@属性n

 

使用pycharm虚拟环境安装xpath模块

Xpath使用示例

用来进行xpath测试的网页 static/index.html

    
网页测试

标题

  • 内容1
  • 内容2
  • 内容3important
  • 内容4
  • 内容5
内容未知

段落内容 from p

段落文字
跳转到百度首页

区块内容1

区块内容2

区块内容3

区块内容4

区块内容5 from block

区块内容6 末尾内容

跳转到360搜索首页

最后一段文字

xpath使用示例

#coding=utf-8from lxml import htmldef parse():    """将html文件中的内容,使用xpath进行提取"""    # 读取文件中的内容    f = open('./static/index.html', 'r', encoding='utf-8')    s = f.read()    selector = html.fromstring(s)    # 解析H3标题    h3 = selector.xpath('/html/body/h3/text()')    print(h3[0])    # 解析ul下面的内容    # ul = selector.xpath('/html/body/ul/li')    # 双斜线语法    ul = selector.xpath("//ul/li")    print(len(ul))    for li in ul:        print(li.xpath('text()')[0])    # 解析ul指定的元素值    ul2 = selector.xpath('/html/body/ul/li[@class="important"]/text()')    print(ul2)    # 解析a标签的内容,拆分的方式    # a = selector.xpath('//div[@id="container"]/a')    # 标签内的内容    # print(a[0].xpath("text()")[0])    # 得到标签的属性    # print(a[0].xpath("@href")[0])    # div[id="container"] 的第二个a标签内容    # print(a[1].xpath("text()"))    # print(a[1].xpath("@href")[0])    # 解析a标签的内容,一次性解析的方式    a1 = selector.xpath('//div[@id="container"]/a/text()')    # 标签内容    print(a1[0])    # 标签数学    alink = selector.xpath('//div[@id="container"]/a/@href')    print(alink[0])    # 解析p标签    p = selector.xpath('/html/body/p[last()]/text()')    print(p[0])    f.close()if __name__ == "__main__":    parse()

 

当我们在页面中找不到xpath的时候可以使用chrome的copy xpath进行参考

转载于:https://www.cnblogs.com/reblue520/p/11150316.html

你可能感兴趣的文章
2018-11-19站立会议内容
查看>>
STM32 通用定时器相关寄存器
查看>>
【题解】1621. 未命名
查看>>
字符串加密算法
查看>>
Oracle的实例恢复解析
查看>>
UICollectionView cellForItemAt 不被调用
查看>>
巧用网盘托管私人Git项目
查看>>
python全栈脱产第19天------常用模块---shelve模块、xml模块、configparser模块、hashlib模块...
查看>>
[LeetCode] House Robber
查看>>
virtualbox中kali虚拟机安装增强功能
查看>>
java生成六位验证码
查看>>
iOS的MVP设计模式
查看>>
stringstream
查看>>
【转】HDU 6194 string string string (2017沈阳网赛-后缀数组)
查看>>
前后端分离
查看>>
存储过程
查看>>
生成器
查看>>
将一个数的每一位都取出来的方法!
查看>>
2) 十分钟学会android--建立第一个APP,执行Android程序
查看>>
面试题8:二叉树下的一个节点
查看>>