大家好,我是Zoey
今天是第二天发文,还有很多不足,
还请多多包涵,有错误可以纠正我喔!!!!
谢谢!!
BeautifulSoup:网页解析
使用BeautifulSoup时须先安装模组
安装命令
pip install BeautifulSoup
其实上一章节就有用到BeautifulSoup了
BeautifulSoup的使用方法
#引入BeautifulSoupfrom bs4 import BeautifulSoup#使用BeautifulSoup解读原始码BeautifulSoup 物件=BeautifulSoup(原始码,'html.parser')
示範使用BeautifulSoup模组解读
#引入BeautifulSoup模组from bs4 import BeautifulSoup#html原始码my_html="""<html><head><title>天天长高</title></head><body><h2>数的羊都跑了</h2><div class="item"> <a id="link1" href="##">Link 1</a> <a id="link2" href="##">Link 2</a></div></body></html>"""#使用BeautifulSoup作解析sp=BeautifulSoup(my_html,'html.parser')
常用的BeautifulSoup的属性方法
tag名称:回传指定tag内容print(sp.title)
结果为 天天长高
text:去除所有html标籤后回传文字内容print(sp.text)
结果为
天天长高
数的羊都跑了
Link 1
Link 2
print(sp.find("a"))
结果为
Link 1
找到内容会回传一个串列
print(sp.find_all("a"))
解果为
[Link 1, Link 2]
-find和find_all也可以寻找符合属性的内容
find或find_all(标籤名称,{属性名称:属性内容})
print(sp.find("a",{"id":"link2"}))
结果为
Link 2
使用id时前面必加#
使用class时前面必加.
select回传值会是串列
print(sp.select("title"))#id使用方法print(sp.select("#link1"))#class使用方法print(sp.select(".item"))
结果为
[天天长高]
[Link 1]
[
Link 1
Link 2
有多层标籤或id或类别时也可以堆叠使用
print(sp.select("html head title"))
结果为
[天天长高]
取得标籤的属性内容
可以使用get方法或是字典的方式
回传值.get("属性名称")
回传值["属性名称"]