时间:2022-05-17 09:25:36 | 栏目:Python代码 | 点击:次
第一步:在控制台输入如下命令,安装beautifulsoup4库。
pip install beautifulsoup4
第三步:在pycharm
中,点击file
——settings
——project
——python interpreter
——点击+号——搜索beautifulsoup4
——install package!
这样就可以在.py文件中导入模块了!
import requests # 虽然库名叫做beautiful4 但是在导入时 使用的是其缩写bs4 其中BeautifulSoup是一个类名 from bs4 import BeautifulSoup url = 'https://www.baidu.com/s?' # 由于一般网站都是供用户访问 如果检测到User-Agent是黑客或者其他可能拒绝访问 故此处模拟浏览器 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36' } response = requests.get(url=url, headers=headers) # 以防乱码 此处将其编码设置为utf-8 因为有中文 response.encoding = 'utf-8' # print(response.text) # 使用的解析器是html.parser 注意是.奥 soup = BeautifulSoup(response.text, 'html.parser') # 打印解析后的结果 print(soup.prettify())
需要讲解的都在代码注释中了奥!
beautifulsoup4
库是解析、遍历、维护“标签树”的功能库。
首先来看BeautifulSoup
库解析器,前两个比较常用!
在上述代码的基础上,增加如下几行,结合基本元素的使用,可得到如图所示。
需要注意的是,.string
可以跨标签,所以很有可能结果也为注释,为了区分是标签内的字符串还是注释,可以通过打印类型来判断。
接下来,看一下BeautifulSoup
库的遍历,其中画红框的迭代遍历,可以用于for in循环中。
find_all( name , attrs , recursive , string , **kwargs )
find_all()
方法搜索当前tag
的所有tag
子节点,并判断是否符合过滤器的条件。
name
参数可以对名字为 name 的标签进行检索。
attrs参数可以对标签属性值为attrs的标签进行检索。
recursive参数表示是否对子孙全部检索,默认是TRUE,如果只想搜索当前节点的儿子信息,可以置其为FALSE。
string 参数可以标签中的字符串内容进行检索。
我们学过js的或者java的,应该对Json不陌生吧!
Json是一种有类型的键值对!
需要注意的是,键和值都需要用"“括起来,如果值是整数,则可以不用”"!
如果值是多值,则可以用[,];如果值是键值对,则可以用{:,:,},可以嵌套使用。
JSON一般用于接口,而YAML是无类型键值对,一般用于配置文件。