概述
一、安装BeautifuSoup库
以管理员打开cmd输入:pip install BeautifuSoup4
二、BeautifuSoup库的理解
BeautifuSoup库是解析、遍历、维护”标签树“的功能库
import requests
from bs4 import BeautifulSoup
# 获取标签
r=requests.get("http://python123.io/ws/demo.html")
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
print(soup.title) # title 网页的标题(左上方)
print(soup.a) # a 链接标签 如果有多个 则获取第一个
print(soup.a.name) # a标签的名字
print(soup.a.parent.name) # a标签父亲的名字 也就是包括a标签的上一层标签
print(soup.a.parent.parent.name) # 父亲的父亲
# 获取标签的属性
print(soup.a.attrs) # attrs:获取此标签下的所有属性
print(soup.a.attrs['class']) # 获取class属性的值
print(soup.a.attrs['href']) # 获取href属性的值
print(type(soup.a.attrs)) # 获取a标签属性的类型 为字典类型
print(type(soup.a)) # 获取a标签的类型 为bs4.element.Tag类型
print(soup.a.string) # string:获取此标签下的两对尖括号中间的值
print(soup.p.string)
结果:
Basic Python
a
p
body
{‘href’: ‘http://www.icourse163.org/course/BIT-268001’, ‘class’: [‘py1’], ‘id’: ‘link1’}
[‘py1’]
http://www.icourse163.org/course/BIT-268001
<class ‘dict’>
<class ‘bs4.element.Tag’>
Basic Python
The demo python introduces several python courses.
三、基于BS4库的HTML内容遍历方法
# 提取HTML中所有URL链接
# 思路:1)搜索到所有<a>标签
# 2)解析<a>标签格式,提取href后的链接内容
from bs4 import BeautifulSoup
import requests
import re # 正则表达式
r=requests.get("http://python123.io/ws/demo.html")
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
for link in soup.findAll('a'):
print(link)
print(type(link))
print(link.get('href'))
# 获取所有标签的名字
print("获取所有标签的名字")
for tag in soup.findAll(True):
print(tag.name)
# 获取以b开头的标签
print("获取以b开头的标签")
for tag in soup.findAll(re.compile('b')):
print(tag.name)
# 获取p标签中包含course的标签
print("获取p标签中包含course的标签")
print(soup.findAll('p','course'))
print("获取id=link1的标签")
print(soup.findAll(id='link1'))
print("检索a标签的子孙后代 recursive默认为true 如果没有后代 则为空")
print(soup.findAll('a',recursive=False))
print("按string进行检索 也就是标签中间的字符串")
print(soup.findAll(string='Basic Python'))
print('检索内容中包含python的字符串')
print(soup.findAll(string=re.compile('python')))
结果为:
Basic Python
<class ‘bs4.element.Tag’>
http://www.icourse163.org/course/BIT-268001
Advanced Python
<class ‘bs4.element.Tag’>
http://www.icourse163.org/course/BIT-1001870001
获取所有标签的名字
html
head
title
body
p
b
p
a
a
获取以b开头的标签
body
b
获取p标签中包含course的标签
[
Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
Basic Python and Advanced Python.
获取id=link1的标签
[ Basic Python]
检索a标签的子孙后代 recursive默认为true 如果没有后代 则为空
[]
按string进行检索 也就是标签中间的字符串
[‘Basic Python’]
检索内容中包含python的字符串
[‘This is a python demo page’, ‘The demo python introduces several python courses.’]
Process finished with exit code 0
最后
以上就是含糊自行车为你收集整理的BeautifuSoup库以及findALL中参数一、安装BeautifuSoup库二、BeautifuSoup库的理解三、基于BS4库的HTML内容遍历方法的全部内容,希望文章能够帮你解决BeautifuSoup库以及findALL中参数一、安装BeautifuSoup库二、BeautifuSoup库的理解三、基于BS4库的HTML内容遍历方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复