首页 前端知识 最详细爬虫零基础教程11——html格式提取之xpath

最详细爬虫零基础教程11——html格式提取之xpath

2024-08-19 22:08:36 前端知识 前端哥 128 884 我要收藏

文章目录

  • 一、html和xml
  • 二、xpath获取节点属性
  • 三、xpath语法
  • 四、案例展示
  • 总结


一、html和xml

lxml是一款高性能的 Python HTML/XML 解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。

区别:
1.xml被设计为传输和存储数据,其焦点是数据的内容
2.html是显示数据以及如何更好的显示数据

区别
xml树结构展示
xml
XML结构 eg
xml

XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。

二、xpath获取节点属性

XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。

每个XML的标签我们都称之为节点,其中最顶层的节点称为根节点。

节点
xpath中节点的关系
在这里插入图片描述
这里给大家推荐一个学习工具,Chrome插件(xpath_helper),百度网盘:https://pan.baidu.com/s/1UM94dcwgus4SgECuoJ-Jcg 密码:337b

三、xpath语法

  1. 选取节点
    XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
    xpath

  2. 查找特定的节点
    特定节点
    注意点: 在xpath中,第一个元素的位置是1,最后一个元素的位置是last(),倒数第二个是last()-1

  3. 选取未知节点
    未知节点

为了加强对xpath的理解,多多练习才是正道:https://movie.douban.com/top250

练习1

  • 选择所有的h1下的文本
    //h1/text()
  • 获取所有的a标签的href
    //a/@href
  • 获取html下的head下的title的文本
    /html/head/title/text()
  • 获取html下的head下的link标签的href
    /html/head/link/@href

练习2
从豆瓣电影top250的页面中:选择所有的电影的名称,href,评分,评价人数

四、案例展示

xpath提取豆瓣单页内容

from lxml import etree
import requests

if __name__ == '__main__':
    url_ = 'https://movie.douban.com/top250'
    headers_ = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
    }
    response_ = requests.get(url_,headers=headers_)
    str_data = response_.text
    print(response_.text)
    # 在提取任何网站的文本数据之前,先打印响应文本看看有没有想要的数据,如果有,再往下写代码,如果没有,再重新找数据包

    # str类型无法直接被xpath识取
    html_obj = etree.HTML(str_data)

    title_list = html_obj.xpath('//a/span[@class="title"][1]/text()')
    # print(len(title_list),title_list)

    url_list = html_obj.xpath('//div[@class="hd"]/a[@class=""]/@href')
    # print(len(url_list),url_list)

    dict_ = {}
    for i in range(len(title_list)):
        dict_[title_list[i]] = url_list[i]
    print(dict_)

总结

这两天我们学习的量有点大,各位uu们可以根据自己的情况来学习,主要是去多花时间练习。

以良好的心态面对生活,你的生活才美好。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16212.html
评论
发布的文章

php保存

2024-08-27 16:08:00

jQuery NiceScroll 插件

2024-08-27 09:08:49

vue echart4.0 按需引入

2024-08-27 09:08:28

Taro3 Vue3使用echarts

2024-08-27 09:08:49

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!