目录
bs4解析原理:如何实例化BeautifulSoup对象:用于数据解析的方法和属性:xpath解析xpath解析原理:实例化一个etree对象:xpath(‘xpath表达式’)总结bs4解析
原理:
1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取
如何实例化BeautifulSoup对象:
from bs4 import BeautifulSoup
BeautifulSoup(参数一,参数二)
参数一为文件描述符,参数二为解析器,一般为’lxml’
一对象的实例化:
1.将本地的html文档中的数据加载到该对象中
fp = open( "./test.html","r",encoding="utf-8") soup=BeautifulSoup(fp,"lxml")
2.将互联网上获取的页面源码加载到该对象中
page_text =response.text soup=BeatifulSoup(page_text,"lxml")
soup指初始化的BeautifulSoup对象
用于数据解析的方法和属性:
1.soup.tagName:返回的是文档中第一次出现的tagName对应的标签
2.soup.find():
(1).find( ‘tagName’):等同于soup.tagName
(2).属性定位:soup.find(‘div’,class_/id/或者其他属性=‘song’)
定位到< div class=“song”>/< div id=“song”>的标签下
class如果没有加_则代表关键字
3.soup.find_all(‘tagName’):返回符合要求的所有标签(列表)
soup对象:
4.select:
- select(‘某种选择器(id,class,标签…选择器)’),返回的是一个列表。
标签什么都不加,class前面加. id前面加#
层级选择器:
>表示的是一个层级;空格表示的多个层级
soup.select( ".tang > ul > li > a") soup.select( ".tang >ul a") 结果为:[清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村, 秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山, 歧王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君, 杜甫, 杜牧, 凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘]
5.获取标签之间的文本数据:
-soup.a.text/string/get_text()
-text/get_text():可以获取某一个标签中所有的文本内容
-string:只可以获取该标签下面直系的文本内容
6.获取标签中属性值:
soup.a[‘属性值’]
print(soup.select( ".tang > ul > li > a") [0]["href"]) 结果: www.baidu.com
xpath解析
最常用且最便捷高效的一种解析方式。通用性。
xpath解析原理:
1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
2调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。
实例化一个etree对象:
from lxml import etree
-1.将本地的html文档中的源码数据加载到etree对象中:
etree.parse(filePath)
-2.可以将从互联网上获取的源码数据加载到该对象中
etree.HTML( "page_text")
xpath( ‘xpath表达式’)
xpath表达式:(返回一个列表)
-/:表示的是从根节点开始定位。表示的是一个层级。
-//:表示的是多个层级。可以表示从任意位置开始定位。
-属性定位://div[@class=‘song’] tag[@attrname=‘attrvalue’]
-索引定位://div[@class=‘song’]/p[3]
索引从1开始的
取文本:
/text()获取的是标签中直系的文本内容//text(标签中非直系的文本内容(所有的文本内容)取属性:
/@attrNameeg:/img/@src./表示定位到当前位置(局部解析)多个xpath之间用|分割:
tree.xpath(’//div[@class=‘song’]/p[3] | //div[@class=‘song’]’)总结
到此这篇关于python爬虫教程之bs4解析和xpath解析的文章就介绍到这了,更多相关pythonbs4和xpath解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?