真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

tag函數(shù)python,tag函數(shù)表

26、BeautifulSoup之Tag

上集回顧:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了禹會免費建站歡迎大家使用!

上集快速領(lǐng)略了一下 BeautifulSoup 的大概功能,并學(xué)習(xí)了如何安裝和構(gòu)造一個 BeautifulSoup 對象。

本集學(xué)習(xí) BeautifulSoup 的 Tag 及其屬性。

由于HTML和XML是由大量tag組合和嵌套而成,所以檢索目標(biāo)信息就是檢索目標(biāo)tag的過程。

一、Tag對象

Tag 對象與XML或HTML原生文檔中的tag相同:

Tag有很多方法和屬性,其中最重要的屬性是: name和attributes。

二、name屬性

每個tag都有自己的名字,通過 .name 來獲取:

如果改變了tag的name,那將影響所有通過當(dāng)前Beautiful Soup對象生成的HTML文檔:

三、attributes屬性

一個tag可能有很多個屬性. tag b class="boldest" 有一個 “class” 的屬性,值為 “boldest” . tag的屬性的操作方法與字典相同:

也可以直接”點”取屬性, 比如: .attrs :

tag的屬性可以被添加,刪除或修改. 再說一次, tag的屬性操作方法與字典一樣

四、多值屬性

HTML 定義了一系列可以包含多個值的屬性。最常見的多值的屬性是 class (一個tag可以有多個CSS的class). 還有一些屬性 rel , rev , accept-charset , headers , accesskey 。在Beautiful Soup中多值屬性的返回類型是list:

如果某個屬性看起來好像有多個值,但在任何版本的HTML定義中都沒有被定義為多值屬性,那么Beautiful Soup會將這個屬性作為字符串返回

將tag轉(zhuǎn)換成字符串時,多值屬性會合并為一個值

如果轉(zhuǎn)換的文檔是XML格式,那么tag中不包含多值屬性

五、字符串

字符串常被包含在tag內(nèi)。BeautifulSoup用 NavigableString 類來包裝tag中的字符串:

一個 NavigableString 字符串與Python中的Unicode字符串相同,通過 unicode() 方法可以直接將 NavigableString 對象轉(zhuǎn)換成Unicode字符串:

本集總結(jié):

下集見

python dfor循環(huán)

如果有一個字符串s(我用的是python3)

那么第一個字符是s[0],最后一個字符是s[len(s)-1]

然后判斷這兩個字符是不是尖括號就可以了

Python tag解析

這個不難啊,用id來定位元素,然后就可以了。id通常是唯一的。

from?bs4?import?BeautifulSoup

html_doc?=?'a?href=""?class="sister"?id="link1"Elsie/a,'

soup?=?BeautifulSoup(html_doc,?'html.parser')

print?soup.find(id="link1").string???#?=?'Elsie'

python中sgmllib.SGMLParser是什么用的

如果要用sgmllib解析html,則要繼承sgmllib.SGMLParser類,此類里的函數(shù)都是空的,用戶需要重載它。這個類提供的功能是在特定情況下調(diào)用相應(yīng)的函數(shù)。

比如當(dāng)發(fā)現(xiàn)html標(biāo)簽時,如果并沒有定義 start_html(self,attr)函數(shù),則會調(diào)用unknown_starttag函數(shù),具體怎么處理則根據(jù)用戶。

sgml的標(biāo)簽是可以自定義的,比如自己定義了一個start_lala函數(shù),則就會處理lala標(biāo)簽。

有個地方要說明下,如果定義了start_tagname函數(shù),有定義了handle_starttag函數(shù),則函數(shù)只會運(yùn)行handle_starttag函數(shù),start_tagname為空函數(shù)都沒有問題,如果沒有定義handle_starttag函數(shù),則遇到tagname標(biāo)簽時,會運(yùn)行start_tagname函數(shù)。如果沒有定義tagname的start函數(shù),則此標(biāo)簽為未知標(biāo)簽,調(diào)用unknown_starttag函數(shù)

給你個例子你就知道了:

#------------------?HTMLParser_stack.py?------------------#

#--?coding:?GBK?--

import?sgmllib,sys,os,string

html?=?"""lalaheadtitleAdvice/title/headbody

pThe?a?href=""?mce_href=""IETF?admonishes:

iBe?strict?in?what?you?bsend/b./i/a/p

form

input?type=submit?name='我'?我?input?type=text?name=start?size=4/form

/body/lala

"""

os.chdir('d://python')

f=file('testboard.txt','r')

contest=f.read()

tagstack?=?[]

class?ShowStructure(sgmllib.SGMLParser):

def?handle_starttag(self,?tag,?method,attrs):?tagstack.append(tag)

def?handle_endtag(self,?tag):?tagstack.pop()

def?handle_data(self,?data):

if?data.strip():

for?tag?in?tagstack:?sys.stdout.write('/'+tag)

sys.stdout.write('??%s/n'?%?data[:40].strip())

def?unknown_starttag(self,tag,attrs):

print?'start?tag:'+tag+''

def?unknown_endtag(self,tag):

print?'end?tag:/'+tag+''

def?start_lala(self,attr):

print?'lala?tag?found'

ShowStructure().feed(html)

輸出:

start tag:head

start tag:title

/lala Advice

end tag:/title

end tag:/head

start tag:body

start tag:p

/lala The

start tag:a

/lala IETF admonishes:

start tag:i

/lala Be strict in what you

start tag:b

/lala send

end tag:/b

/lala .

end tag:/i

end tag:/a

end tag:/p

start tag:form

start tag:input

/lala ?

start tag:input

end tag:/form

end tag:/body

end tag:/lala

python tkinter 的Text控件為什么tag_add和tag_config用不了?

報錯提示給你說的很明顯了......

可能是“text1”在你代碼中間被替換了,

變成了None,

檢查代碼吧。。。


當(dāng)前名稱:tag函數(shù)python,tag函數(shù)表
轉(zhuǎn)載注明:http://weahome.cn/article/hcshih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部