Beautifulsoup查找标签及属性值

一、 查找a标签

(1)查找所有a标签
复制代码

for x in soup.find_all(‘a’):
print(x)

Elsie
Lacie
Tillie

复制代码

(2)查找所有a标签,且属性值href中需要保护关键字“”

for x in soup.find_all(‘a’, attrs={“class” :re.compile(‘lacie’)} ):
print(x)

Lacie

(3)查找所有a标签,且字符串内容包含关键字“Elsie”

for x in soup.find_all(‘a’,string = re.compile(‘Elsie’)):
print(x)

Elsie

(4)查找body标签的所有子标签,并循环打印输出
复制代码

for x in soup.find(‘body’).children:
if isinstance(x,bs4.element.Tag): #使用isinstance过滤掉空行内容
print(x)

The Dormouse's story

Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.

复制代码

二、信息提取(链接提取)

(1)解析信息标签结构,查找所有a标签,并提取每个a标签中href属性的值(即链接),然后存在空列表;
复制代码

linklist = []
for x in soup.find_all(‘a’):
link = x.get(‘href’)
if link:
linklist.append(link)

for x in linklist: #验证:环打印出linklist列表中的链接
print(x)

http://example.com/elsie
http://example.com/lacie
http://example.com/tillie

复制代码

小结:链接提取 <—> 属性内容提取 <—> x.get(‘href’)

(2)解析信息标签结构,查找所有a标签,且每个a标签中href中包含关键字“elsie”,然后存入空列表中;
复制代码

linklst = []
for x in soup.find_all(‘a’, attrs={“class” :re.compile(‘lacie’)}):
link = x.get(‘href’)
if link:
linklst.append(link)

for x in linklst: #验证:循环打印出linklist列表中的链接
print(x)

http://example.com/elsie

复制代码

小结:在进行a标签查找时,加入了对属性值href内容的正则匹配内容 <—> href = re.compile(‘elsie’)

(3)解析信息标签结构,查询所有a标签,然后输出所有标签中的“字符串”内容;
复制代码

for x in soup.find_all(‘a’):
string = x.get_text()
print(string)

Elsie
Lacie
Tillie

  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值