BeautifulSoup-bs4的簡單使用


# 簡單使用:
#     說明:選擇器 jquery
#導入from bs4 import BeautifulSoup
#使用方式:可以將一個html文檔,轉化為一個對象,
# 然后通過對象的方法或者屬性去查找指定對象
#轉化本地文件soup = BeautifulSoup(open("本地文件"),'lxml')
#轉化網絡文件soup = BeautifulSoup(open("字符串或者字節類型"),'lxml')

from bs4 import BeautifulSoup

#生成對象
soup = BeautifulSoup(open("xx.html"),'lxml')
#打印  這是一個對象
print(soup)
#1、根據簽名查找
#可以查找這個對象的所有HTML標簽
print(soup.a)#<a href=""...>   a標簽
print(soup.div) #div 標簽
#2、獲取標簽中的屬性 比如<a href=""...> 中有href和內容兩部分屬性
#<a href="http://www.baudu.com/meinv.jpg" title="" target="" >這里是內容</a>
print(soup.a['href'])
print(soup.a['title'])
print(soup.a['target'])
print(soup.a['attrs'])#找出所有屬性和值並返回一個屬性字典
#3、獲取內容
#<a href="http://www.baudu.com/meinv.jpg" title="" target="" >這里是內容</a>
#以下三個都可以
print(soup.a.string)
print(soup.a.text)
print(soup.a.get_text())
#4、獲取一個div中的內容  如下  來區別以上三個方法的不同
# <div>
#     甄姬
#     <p>百里守約</p>
#     <p>李白</p>
#     太乙真人
# </div>
print(soup.a.string)#只能獲取標簽里面只有文本的情況 標簽里有別的標簽就獲取不到了 結果為None
print(soup.a.text)#這個方法里面有標簽也可以獲取所有文本內容
print(soup.a.get_text())#這個方法里面有標簽也可以  和上一個效果一樣
#5、soup.find('a')
print(soup.find("a"))#找到第一個符合要求的a
print(soup.find("a"),title="限制")#通過第二個參數來限制
print(soup.find("a"),alt="限制")
print(soup.find("a"),class_="限制")#class是關鍵字不能用,但是可以用class_
print(soup.find("a"),id="限制")

#如果有重復的 需要精確查找 自己定義限定塊 再查找 代碼如下
#find方法不僅soup可以調用,普通div對象也能調用,
# 會去指定的div里面查找符合要求的節點
div = soup.find('div',class_="第一個限制塊")
print(div.find('a',class_="第二個限制條件"))
#6、find_all()  和上面的find差不多
lt = soup.find_all('a')
print(lt,len(lt))#會產生一個列表 ,里面會有幾個查找到的元素
div = soup.find_all('div',class_="第一個限制塊")
print(div.find_all('a',class_="第二個限制條件"))
print(div.find_all('a','b')
print(div.find_all('a',limit=2)#找到所有取出前2個
#7、select 根據選擇器選擇指定的內容
#常見選擇器:標簽選擇器、類選擇器、id選擇器、層級選擇器、偽類選擇器、屬性選擇器、組合選擇器
#a  標簽a
# .dudu 類選擇器
# #lala id選擇器
# 層級選擇器舉例  div .dudu #lala .meme .xixi    下面好多級
#建議層級選擇器寫法:div>p>a>.lala  這樣只能找下面一級
print(soup.select(".tang>ul>li>a")[2])  #返回的是列表 這個是取第三個
print(soup.select("#feng")[0].text|['href'])#取查找到的第一個  。text並只找文本
#select選擇器返回的永遠是列表  需要通過下標提取指定的對象,然后獲取屬性和節點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM