爬虫(5)——BeautifulSoup(1)

目录

 

1.BeautifulSoup4

几大解析工具对比

BeautifulSoup的常用方法

      (1)find_all

(2) select


1.BeautifulSoup4

1.与lxml一样也是HTML/XML的解析器

2.B会载入整个文档,解析整个DOM树,lxml是局部,所以B的时间内存开销大。

3.操作简单。

几大解析工具对比

from bs4 import BeautifulSoup
html=""
bs=BeautifulSoup(html,"lxml")#“lxml”为解析器,还有三种解析器如下
print(bs.prettify())
#会打印出比较规范的格式

BeautifulSoup的常用方法

(1)find_all

from bs4 import BeautifulSoup
html=""
bs=BeautifulSoup(html,"lxml")
print(bs.prettify())
#会打印出比较规范的格式

#1.找到所有的tr标签
trs=bs.find_all("tr")
for tr in trs:
    print(tr)#

#1.找到第2个tr标签
trs=bs.find_all("tr",limit=2)[1]#limit是遍历前两个,find_all返回的列表,列表中每个元素是以字符串的形式显示,但实际上是Tag

#3.获取所有class等于even的tr标签
trs=bs.find_all("tr",class_="even")#class后面加下划线是为了与关键字class区别
trs=bs.find_all("tr",attrs={"class":"even"})#也可以

#4.获取所有a标签的href属性
aList=bs.find_all("a")
for a in aList:
    #1.通过列表获得属性
    href=a["href"]
    #2.通过attrs获取
    href=a.attrs['href']

#5.获取文本信息
trs=bs.find_all("tr")
for tr in trs:
    tds=tr.find_all("td")
    position=tds[0].string
    time=tds[1].string

#还可以
trs=bs.find_all("tr")
for tr in trs:
    infom=list(tr.stripped_strings)


(2)select

使用css选择器语法


#1.找到所有的tr标签

trs=bs.select('tr')
for tr in trs:
    print(tr)

#1.找到第2个tr标签
trs=bs.select("tr")[1]#limit是遍历前两个,find_all返回的列表,列表中每个元素是以字符串的形式显示,但实际上是Tag

#3.获取所有class等于even的tr标签
trs=bs.select("tr.even")
#或者
trs=bs.select("tr[class='even']")
for tr in trs:
    print(tr)

#4.获取所有a标签的href属性
aList=bs.select("a")
for a in aList:
    #1.通过列表获得属性
    href=a["href"]
    #2.通过attrs获取
   # href=a.attrs['href']

#5.获取文本信息
trs=bs.select("tr")
for tr in trs:
    # tds=tr.find_all("td")
    # position=tds[0].string
    # time=tds[1].string
    inform=list(tr.stripped_strings)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值