BeautifulSoup提取源代码信息

BeautifulSoup是一个HTML或XML的解析器,简单来说,就是可以在网页源代码中提取想要的信息。下面是一些基础操作~

先给一段源代码素材

html = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""

这是一段源代码,通过网络爬取即可获得,这里只介绍解析部分,因此直接给出源代码。

学习BeautifulSoup,肯定得先import一下

from bs4 import BeautifulSoup

bs4是beautifulsoup4的简称;
BeautifulSoup其实是bs4中的一个类,然后通过这个类将网页html格式字符串生成一个对象,然后通过对象的方法来进行查找指定元素。

开始练习提取源代码中的内容

# 首先通过BeautifulSoup将html解释,赋值为一个新变量,便于后续操作
soup=BeautifulSoup(html,'html.parser')  # ’html.parser’是解析器,可换成’lxml’
print(soup.title)  # title标签
print(soup.a) # a标签
print(soup.a.name) # a标签的名字
print(soup.a.attrs) # a标签的属性
print(soup.a.text) # a标签的内容
print(soup.find_all('a')) # 找到所有的a标签
print(soup.find_all('a',id='link2')) # 有条件地寻找标签
print(soup.find_all('a',class_='sister'))
print(soup.find_all('a',attrs={'class':'sister'}))
print(soup.find_all('a',text='Tillie'))
for each in soup.find_all('a'): 
  print(each.attrs['href'])
  print(each.text)

运行结果如下

<title>The Dormouse's story</title>
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
a
{'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'}
Elsie
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" 			href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" 	href="http://example.com/tillie" id="link3">Tillie</a>]
[<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" 	href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
[<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
[<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
http://example.com/elsie
Elsie
http://example.com/lacie
Lacie
http://example.com/tillie
Tillie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值