小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
每天一小步,成功一大步。大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习每天小知识。
入门python爬虫,欢迎阅读入门Python爬虫--Requests库
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍python爬虫所用到的beautifulsoup4库的一些基本方法和关键点,避免读者走弯路。
Beautiful Soup库解析器
soup = BeautifulSoup('<html>data</html>,"html.parser")
使用html.parser解析器需要使用bs4库
Beautiful Soup还可以使用其他的解析器,也需要安装对应的库。
使用方法:只需把html.parser替换为“lxml”,"xml","html5lib"。其对应的库分别为:"lxml","lxml","html5lib".
BeautifulSoup类的基本元素
这里我们只介绍一些常见的属性:
Tag 标签 格式:soup.Tag(soup是beautifulsoup的对象)
Name 标签的名字 格式:.name
Attributes 标签的属性 格式:.attrs
NavigableString 标签内非字符串属性<>字符串<> 格式:.string
BeautifulSoup对象的方法
soup = BeautifulSoup(response.text)//response.text是返回的网页的实体
-
find(name)
name:检索的标签字符串名称
-
find(name).children
获得name标签的孩子标签
-
find_all(name, attrs, recursive, string, **kwargs)
name:检索的标签字符串名称
attrs:可进行属性检索
reccursive:是否对子孙进行检索,默认为True
string:<>字符串<>获得标签中间的字符串
find()只能找到第一个name标签,返回的是一个标签
find_all()找到所有的name标签,返回的是一个列表,列表内的每一个元素都是标签。
//比如我们要找table 标签下的tr td 。
//利用属性来找
tr = soup.find_all("tr",claaa_="name")
//找到所有
for tr in soup.find("tr").children:
tds = tr('td')
//找到所有的
tds = soup.find_all("td")
结语
以上就是关于beautifulsoup4库的一些基本使用,如有不正之处,欢迎掘友们批评指正。