13、数据提取2:beautifulsoup
beautiful soup 的简单介绍
目的:使用beautifulsoup提取爬下来的数据
通常多为网页数据,html文本
在这里做个简单的介绍
<></> 这种形式的叫做双标签
<p></p> p标签, p 标签的名字 ,其他同理可推
<p class = "one"> ...</p> class 叫做属性, “one” 叫做属性值, ... 内容
1 将爬取的内容抓换成soup文档
# 使用豆瓣电影为例
import requests
from fake_useragent import UserAgent
from bs4 import BeatuifulSoup
ua = UserAgent()
headers = {"User-Agent":ua.chrome}
url = "https://movie.douban.com/top250?start=0"
response = requests.get(url , headers = headers)
soup = BeautifulSoup(response.content.decode(),"html.parser") # 至关重要,转换成soup文档
2 查找标签
# 接上
soup.a # 返回找的第一个a标签内容
soup.find_all("a") # 返回所有 a 标签的列表, 返回为python列表,操作与列表相同
3 查找属性
soup.a["class"] # 返回第一个a标签,class属性对应的值
soup.a["href"] # 返回第一个a标签,href属性对应的值
4 查找内容
soup.a.string # 返回第一个a标签的内容
以上几种方法只有选取的值确定唯一时才可以使用,如果返回值是一个列表,循环遍历使用。
重要方法
1 find_all() 返回值是一个列表
find_all( name , attrs , recursive , string , **kwargs )
这其中只需要关注两个参数: name , **kwargs
name : 标签的名字
soup.find_all("div" , class_ = "item"}) # 返回一个列表,长度25
2 select() 返回值是一个列表
参数是一个字符串,形式为css选择器
soup.select("a[href]") # 返回一个列表