码迷,mamicode.com
首页 > 其他好文 > 详细

《爬虫学习》(四)(使用lxml,bs4库以及正则表达式解析数据)

时间:2020-01-27 18:57:44      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:ali   highlight   object   pip   正则表达式   idt   语法   img   png   

1.XPath:

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

工具:扩展商店里搜索:XPath Helper(我是QQ浏览器)

技术图片

 

XPath的语法:

技术图片

 

 

 使用举例:

技术图片

 

 

2. lxml库:

lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据

下载:pip install lxml

基本使用:在lxml中使用xpath语法

技术图片

 

 

3.bs4库的使用:

和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。
lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM(Document Object Model)的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。
BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。
Beautiful Soup 3 目前已经停止开发,推荐现在的项目使用Beautiful Soup 4。

安装:pip install bs4

bs4的简单使用:

from bs4 import BeautifulSoup

html = """

一段HTML代码

"""

#创建 Beautiful Soup 对象
# 使用lxml来进行解析
soup = BeautifulSoup(html,"lxml")

print(soup.prettify())

举例使用:

# bs4库的使用
# from bs4 import BeautifulSoup
# html = xxxx
# bs4底层由lxml实现
# bs = BeautifulSoup(html, lxml)
# 1.获取所有span标签
# spans = bs.find_all(span)
# for span in spans:
#     print(span)
# 2.获取前二个span标签(limit=2)中的第二个span标签([1])   下标:从0开始
# span = bs.find_all(span, limit=2)[1]
# print(span)
# 3.获取所有dl中class等于bottom的标签
# dls = bs.find_all(dl, class_=bottom)
# for dl in dls:
#     print(dl)
# 或者使用attrs标签(attrs=一个字典)
# dls = bs.find_all(dl, attrs={class:bottom})
# for dl in dls:
#     print(dl)
# 4.获取所有a标签的href属性
# aList = bs.find_all(a)
# for a in aList:
#     # 1.使用下标方法(推荐)
#     href = a[href]
#     # 2.使用attrs方式
#     href2 = a.attrs[href]
#     print(href2)

4.还有一种方法解析数据:正则表达式

以下内容从别人博客转载,方便复习

技术图片技术图片技术图片

 

 

 技术图片

 

《爬虫学习》(四)(使用lxml,bs4库以及正则表达式解析数据)

标签:ali   highlight   object   pip   正则表达式   idt   语法   img   png   

原文地址:https://www.cnblogs.com/Whgy/p/12236514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!