BeautifulSoup是什么
网页解析库BeautifulSoup,用来解析和提取网页中的数据。
安装BeautifulSoup库
BeautifulSoup库目前已经进阶到第4版(Beautiful Soup 4),由于它不是Python标准库,而是第三方库,需要单独安装它,在自己的电脑上运行,需要在终端输入一行代码运行:pip install BeautifulSoup4。(Mac电脑需要输入pip3 install BeautifulSoup4)
解析数据
from bs4 import BeautifulSoup
soup = BeautifulSoup(字符串,'html.parser')
提取数据
find()与find_all();Tag对象(标签对象)
find()与find_all()是BeautifulSoup对象的两个方法,它们可以匹配html的标签和属性,把BeautifulSoup对象里符合要求的数据都提取出来。
find()只提取首个满足要求的数据。find()方法将代码从上往下找,找到符合条件的第一个数据,不管后面还有没有满足条件的其他数据,停止寻找,立即返回。
而find_all()顾名思义(find all:查找全部),提取出的是所有满足要求的数据。代码从上往下找,一直到代码的最后,把所有符合条件的数据揣好,一起打包返回。
find() | find_all() |
---|
作用:提取满足要求的首个数据 | 作用:提取满足要求的所有数据 |
用法:BeautifulSoup对象.find(标签,属性) | 用法:BeautifulSoup对象.find_all(标签,属性) |
用例:soup.find(‘div’,class_=‘books’) | 用例:soup.find_all(‘div’,class_=‘books’) |
括号中的参数:标签和属性可以任选其一,也可以两个一起使用,这取决于我们要在网页中提取的内容。一个参数可以定位内容就使用一个,需要两个参数一起使用才能准确定位的话就使用 两个。
import requests
from bs4 import BeautifulSoup
res = requests.get(url)
soup = BeautifulSoup( res.text,'html.parser')
print(type(soup))
item = soup.find('div')
print(type(item))
print(item)
import requests
from bs4 import BeautifulSoup
res = requests.get(url)
soup = BeautifulSoup( res.text,'html.parser')
print(type(soup))
item = soup.find_all('div')
print(type(item))
print(item)
Tag.find()和Tag.find_all() | 用来提取Tag中的Tag |
---|
Tag.text | 用来提取Tag中的文字 |
Tag[‘属性名’] | 用来提取Tag中的属性值 |
import requests
from bs4 import BeautifulSoup
res = requests.get(url)
soup = BeautifulSoup( res.text,'html.parser')
print(type(soup))
items = soup.find_all(class_='books')
print(type(items))
for item in items:
kind=item.find('h2')
title=item.find(class_="title")
brief=item.find(class_="info")
print(kind.text,'\n',title['href'],'\n',title.text,'\n',brief.text)
print(type(kind),type(title),type(brief))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)