测试文件:baidu.html
请将文件内容放于项目的根目录下
文件内容
百度一下,你就知道
文件在浏览器中打开的截图:
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.title)
百度一下,你就知道
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.a)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.head)
百度一下,你就知道
类型
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(type(bs.head))
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.title)
print(bs.title.string)
print(type(bs.title.string))
百度一下,你就知道
百度一下,你就知道
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.a.attrs)
{'class': ['mnav'], 'href': 'http://news.baidu.com', 'name': 'tj_trnews'}
3.BeautifulSoup 表示整个文档
类型
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(type(bs))
名字
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.name)
[document]
树形文档
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs)
百度一下,你就知道
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read()
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.a.string)
print(type(bs.a.string))
新闻
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8")
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.head.contents)
['\n', , '\n', , '\n', , '\n', , '\n',
百度一下,你就知道 , '\n']
得到列表,可以用下标来访问相关的元素
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8")
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
print(bs.head.contents[1])
# tag的.content属性可以将tag的子节点以列表的方式输出
print(bs.head.contents)
#用列表索引来获取它的某一个元素
print(bs.head.contents[1])
for child in bs.body.children:
print(child)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
#找到所有a标签的链接,放到一个列表里面
t_list=bs.find_all("a")
print(t_list)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
import re
t_list=bs.find_all(re.compile("a")) #包含a的所有内容
print(t_list)
[
百度一下,你就知道
, , , , , 新闻, hao123, 地图, 视频, 贴吧, 更多产品]
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
def name_is_exists(tag):
return tag.has_attr("name") #需要有name的标签的
t_list=bs.find_all(name_is_exists)
print(t_list)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
def name_is_exists(tag):
return tag.has_attr("name")
t_list=bs.find_all(name_is_exists)
#print(t_list)
for item in t_list:
print(item)
我想找到id="head"的内容
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
t_list=bs.find_all(id="head")
for item in t_list:
print(item)
我想找到含有class类的内容
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
t_list=bs.find_all(class_=True)
for item in t_list:
print(item)
新闻
hao123
地图
视频
贴吧
更多产品
我想找到含有href="http://news.baidu.com"的内容
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
t_list=bs.find_all(href="http://news.baidu.com")
for item in t_list:
print(item)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
#文档的搜索
t_list=bs.find_all(text="hao123")
for item in t_list:
print(item)
hao123
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.find_all(text=["hao123","地图","贴吧"])
for item in t_list:
print(item)
hao123
地图
贴吧
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
import re
#应用正则表达式来查找包含特定文本的内容(标签里的字符串)
t_list=bs.find_all(text=re.compile("\d")) #\d表示数字
for item in t_list:
print(item)
hao123
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.find_all("a",limit=3)
for item in t_list:
print(item)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select('title') #通过标签来查找
for item in t_list:
print(item)
百度一下,你就知道
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select(".mnav") #通过标签来查找
for item in t_list:
print(item)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select("#u1") #通过id来查找
for item in t_list:
print(item)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select("a[class='bri']") #通过属性来查找
for item in t_list:
print(item)
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select("head>title") #通过子标签来查找
for item in t_list:
print(item)
百度一下,你就知道
from bs4 import BeautifulSoup
file=open("./baidu.html","rb") #以二进制方式打开文档
html=file.read().decode("utf-8") #读取一个文档做为一个对象
bs=BeautifulSoup(html,"html.parser") #解析文档,用html的解析器
t_list=bs.select(".mnav ~ .bri") #通过兄弟标签来查找
print(t_list[0].get_text())
更多产品