bs4 CSS选择器
#https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-all
#beautifulSoup可以解析HTML,下載安裝時使用的是 pip install beautifulsoup4? ,導入模塊時使用的是bs4.
?
import bs4
?
noStarchSoup=bs4.BeautifulSoup(res.text)
#bs4.BeautifulSoup()函數(shù)返回的是一個BeautifulSoup對象。
?
?
#也可以像BeautifulSoup()傳遞一個File對象。
exampleFile=open('usePythonDownloadHtml.html')
exampleSoup=bs4.BeautifulSoup(exampleFile.read())
#CSS選擇器的匹配模式
'''
傳遞給select()方法的選擇器? ? ? ? ? 將匹配...
soup.select('div')? ? ? ? ? ? ? ? ? ?所有名為<div>的元素
soup.select('#author')? ? ? ? ? ? ? ?帶有id屬性為author的元素
soup.select('.notice')? ? ? ? ? ? ? ?所有使用CSS class 屬性名為notice的元素
soup.select('div span')? ? ? ? ? ? ? 所有在<div>元素之內(nèi)的<span>元素
soup.select('div > span')? ? ? ? ? ? 所有直接在<div>元素之內(nèi)的<span>元素,中間沒有其他元素
soup.select('input[name]')? ? ? ? ? ?所有名為<input>,并有一個name屬性,其值無所謂的元素
soup.select('input[type="button"]')? 所有名為<input>,并有一個type屬性,其值為bottom的元素
'''
?
#不同的選擇器模式可以組合起來,形成復雜的匹配。例如,soup.select('p#author')將匹配所有id屬性為author的元素,只要它也在一個<p>元素之內(nèi)。
#select()方法將返回一個tag對象的列表。Tag的值可以傳遞給str()函數(shù),顯示它們代表的Html標簽。Tag值也可以有attrs屬性,它將該Tag的屬性作為一個字典。
?
elems=exampleSoup.select('p')? #查找出"id=author"的元素,返回的elems為一個list.
#len(elems) 返回值為1,說明列表中只有一個tag對象。
print(elems[0].getText(),'1' )#返回該元素的文本,或內(nèi)部的HTML。一個元素的文本是在開始和結(jié)束標簽之間的內(nèi)容。
print(str(elems[0]),'2' ) #將返回一個字符串,其中包含開始和結(jié)束標簽,以及該元素得到文本。
print(elems[0].attrs,'3') #返回一個字典包含元素的屬性名與屬性值。
print(elems[0].get('id'),'4')#返回元素的屬性‘id'的值。
轉(zhuǎn)載于:https://www.cnblogs.com/Ting-light/p/9547355.html
總結(jié)
以上是生活随笔為你收集整理的bs4 CSS选择器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。