beautifulsoup组件爬虫

一、beautifulsoup组件爬虫
1、爬虫相关的组件库
2、可以爬取网页指定标签的内容,而不是整个页面进行爬取。
3、用于对json数据爬取和分析起到主要的作用。
4、主要构成
(1) Tag标签
(2) nav导航
(3) BeautifulSoup对象
(4) comment注释

二、在PYCHARM中安装BeautiFulSoup组件
1、python3.7支持的BeautiFulSoup是BeautiFulSoup4版本

2、安装完成Beautifulsoup4后,引入bs4的Beautifulsoup组件
from bs4 import BeautifulSoup
Import urllib.request

3、获取BeautifulSoup对象
Bs=BeautifulSoup(html对象,”lxml”)
html对象是由urllib组件抓取的网页对象,
lxml表示BeautifulSoup所使用的解析器组件

示例如下:
from bs4 import BeautifulSoup
import urllib.request

抓取网页

html=urllib.request.urlopen("http://www.baidu.com")

使用BeautifulSoup解析网页,获取BeautifulSoup对象

bs=BeautifulSoup(html)

print(type(bs))

获取网页标题标签元素对象(Tag对象)

title=bs.title
print(type(title))
print(title)

print(bs.body.text)

获取标签的内容

print(title.text)

4、Tag对象
(1)是由BeautifulSoup对网页解析后使用对应的标签属性得到的对象
例如:
title=bs.title
获取到的是title标签对象

获取标签名称
Bs.title.name

(2) 获取标签的属性
bs.标签名[‘属性名称’]
或者bs.标签名.get(“属性名称”)

(3) 标签的contents(内容)属性
获取的是整个文档书的列表信息
将整个文档树的子节点以列表的形式输出
示例如下:获取div的所有子节点列表
print(bs.div.contents)
输出的信息如下:
[,

, '\n',

, '\n',

,

]

5、遍历文档树示例如下,遍历div节点下的所有子节点:
for s in bs.div.contents:
print(s) #表示子标签对象

6、查找文档树
(1)查找所有指定标签的列表对象
bs.find_all(“标签名称”)

示例,查找所有的a标签
mya=bs.find_all("a")
print("获取所有a标签的列表:")
print(mya)
for sa in mya:
print(sa.text) #获取a标签列表对象(标签对象)

(2) 根据指定的属性进行查找attrs属性查找
x=bs.find_all(attrs={‘属性’:’值’})

示例如下:
解析天涯杂谈板块的标题
from bs4 import BeautifulSoup
import urllib.request

获取天涯杂谈网址信息

html=urllib.request.urlopen("http://bbs.tianya.cn/list-free-1.shtml")

解析为BeatifulSoup对象

bs=BeautifulSoup(html)

查找td标签下,class='face'属性的标签

mytds=bs.find_all("td",attrs={"class":"td-title faceblue"})
for td in mytds:
print(td.a.text)

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1