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]")  # 返回一个列表
posted @ 2021-01-04 20:47  hefany  阅读(65)  评论(0编辑  收藏  举报