首页 > 其他分享 >最详细爬虫零基础教程11——html格式提取之xpath

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

时间:2024-03-26 22:31:08浏览次数:32  
标签:11 xpath title list XML html 基础教程 节点

文章目录


一、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们可以根据自己的情况来学习,主要是去多花时间练习。

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

标签:11,xpath,title,list,XML,html,基础教程,节点
From: https://blog.csdn.net/ZxVSaccount/article/details/136889681

相关文章

  • 最详细爬虫零基础教程10——json格式提取之jsonpath
    文章目录一、json数据解析二、案例演示1.解析获得数据2.简化代码3.豆瓣json数据解析总结一、json数据解析用来解析多层嵌套的json数据;JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript,Python,PHP和Java。语......
  • 代码随想录算法训练营第十七天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之
    文档链接:https://programmercarl.com/LeetCode110.平衡二叉树题目链接:https://leetcode.cn/problems/balanced-binary-tree/思路:这里强调一波概念:二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数......
  • LeetCode 11.盛最多的水(双指针,贪心)
    题目:思路:我们可以安排俩个指针(数组下标)放在数组的头部和尾部;每次移动高度较低的下标,判断是否为最大水量并记录;(水量=下标差乘较小高度)证明可行性:如果移动高度较高的下标,由于下标差减小,故不论后面下标对应的高度增大,不变或减小都会导致水量减小;(增大:下标差减小,较小高度......
  • LeetCode刷题Day11(补卡)
    20.有效的括号题目链接:leetcode20.有效的括号文章讲解:代码随想录视频讲解:哔哩哔哩视频这题考察的是栈的使用,遍历字符串,如果是左括号存入栈中,如果是右括号则对比栈的头部是否为与之匹配的左括号,如果不是则返回false,最后若栈为空则正好匹配返回true,详细代码如下:cl......
  • XPath定位如何在App自动化测试中大显神威
    简介和selenium类似,作为App自动化测试的主流框架,appium也是以webdriver为基础来自动化操作App的,所以对于元素定位,其实appium与selenium也是类似的,只是appium还有自己的安卓原生定位方式等方法,但是关于ID定位,name定位,xpath定位等,appium也是支持的,本篇文章就来给大家介绍一下xpath......
  • Windows Packet Divert(WinDivert)是一个适用于Windows 10、Windows 11和Windows Server
    WindowsPacketDivert(WinDivert)是一个适用于Windows10、Windows11和WindowsServer的用户模式数据包捕获和重定向工具。WinDivert允许用户模式应用程序捕获/修改/丢弃发送到/从Windows网络堆栈的网络数据包。总之,WinDivert可以:捕获网络数据包过滤/丢弃网络数据包嗅探......
  • 面对对象11:方法重写
    packagecom.oop;importcom.oop.demo05.A;importcom.oop.demo05.B;/**封装的意义*1.提高程序的安全性*2.隐藏代码的实现细节*3.统一接口*4.系统的可维护性增加了**/publicclassApplication{//静态方法和非静态方法区别很大!!!//有static时,b调用B......
  • Win11专业版永久密钥(支持重装)
    Windows11专业版是Windows11的商业版本,专为中小型企业(SMB)和教育机构设计。它提供了一些家庭版中没有的功能,例如:高级安全功能:包括BitLocker加密、WindowsDefender高级威胁防护和WindowsHelloforBusiness。设备管理功能:包括组策略、WindowsUpdateforBusines......
  • CF1411C - Peaceful Rooks | 思维
    links在一个\(n\timesn\)的棋盘上有\(m(m<n)\)个棋子。若棋子处于同一行或同一列便认为他们可以互相攻击。初始时棋子之间均不可互相攻击。你可以进行若干次操作,每次操作可以将棋子纵向移动任意格或横向移动任意格,要求移动之后棋子之间不能互相攻击。求使得棋子均处在主......
  • 2024.03.11 校招 实习 内推 面经
    绿*泡*泡VX:neituijunsir  交流*裙,内推/实习/校招汇总表格1、校招|微软2024春招正式开启!校招|微软2024春招正式开启!2、社招&校招|主线科技Trunk春季热招中(内推)社招&校招|主线科技Trunk春季热招中(内推)3、校招|思特威2024春季校招正式启动(内推)校招|......