ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

bs4和xpath的用法

2020-05-23 10:54:42  阅读:263  来源: 互联网

标签:xpath 定位 etree bs4 标签 用法 div 解析 属性


1.bs4的运用
流程:
1.导入相应的模块:from bs4 import BeautifulSoup
2.实例化一个 BeautifulSoup 对象,并将我们要解析的数据加载到该对象中:soup = BeautifulSoup('要解析的数据','lxml(解析器)')
3.定位标签:(1).通过标签名定位:soup.标签名 第一个标签
(2).通过标签名和属性定位soup.find('标签名',attr = {'属性名':属性值}) 返回的是查询到的第一个标签
soup.findAll('标签名',attr = {'属性名':属性值}) 返回的一个由所有结果构成的列表
(3). 通过选择器定位:select('selector')其中selector像css那样的层级关系eg:('.card > h1 > a ')返回的也是一个列表
4.数据的提取:要注意的是findAll与select返回的都是列表,所有我们必须确定到要提取的某个标签
(1)string:取出标签直系的文本内容
. (2)text:取出标签中所有的文本内容
(3)标签名['属性名']:获取属性的值
5.爬取一个小说实例:https://www.cnblogs.com/KingOfCattle/p/12907968.html

2.xpath的运用:
流程:
(1). 导入相应的模块:from lxml import etree
(2).实例化etree对象,并将我们要解析的数据加载到该对象中:解析本地etree.parse('要解析的数据'),解析爬取的数据etree.HTML('要解析的数据')
(3).该对象结合xpath表达式进行提取数据,获取的数据都存储在列表里面了
xpath表达式: 1.表示一个层级,但是/在最左边的时候表示从根标签开始定位
2.//跳多个层级,最左边的时候表示从任意地方开始定位
3.属性定位://标签名[@属性名='属性值']
4.索引定位://标签名[index],index索引是从1开始
5.模糊定位模糊匹配:
//div[contains(@class, "ng")] 定位到class属性值中包含ng的div标签
//div[starts-with(@class, "ta")] 定位到class属性值中是以ta开头的div标签
数据的提取:
/text() 获取值系内容
//text() 获取所有的内容
/@属性名 获取属性值

标签:xpath,定位,etree,bs4,标签,用法,div,解析,属性
来源: https://www.cnblogs.com/KingOfCattle/p/12941418.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有