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