入门Python爬虫--beautifulsoup4库

228 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

 每天一小步,成功一大步。大家好,我是程序猿小白 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库的一些基本使用,如有不正之处,欢迎掘友们批评指正。