1. Python大数据特训班_爬取与分析_2.)BeautifulSoup

大家好,我是Zoey
今天是第二天发文,还有很多不足,
还请多多包涵,有错误可以纠正我喔!!!!
谢谢!!http://img2.58codes.com/2024/emoticon41.gif

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

find("标籤名称"):传回第一个符合条件的tag
print(sp.find("a"))

结果为
Link 1

find_all("标籤名称"):回传所有符合条件的内容
找到内容会回传一个串列
print(sp.find_all("a"))

解果为
[Link 1, Link 2]

-find和find_all也可以寻找符合属性的内容
find或find_all(标籤名称,{属性名称:属性内容})

print(sp.find("a",{"id":"link2"}))

结果为
Link 2

select():回传指定id或class
使用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("属性名称")
回传值["属性名称"]


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章