日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
python中tag函數(shù) python attrs函數(shù)

python中sgmllib.SGMLParser是什么用的

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

成都創(chuàng)新互聯(lián)公司2013年成立,先為獨(dú)山等服務(wù)建站,獨(dú)山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為獨(dú)山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

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

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

給你個(gè)例子你就知道了:

#------------------?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用不了?

報(bào)錯(cuò)提示給你說的很明顯了......

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

變成了None,

檢查代碼吧。。。

26、BeautifulSoup之Tag

上集回顧:

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

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

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

一、Tag對(duì)象

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

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

二、name屬性

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

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

三、attributes屬性

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

也可以直接”點(diǎn)”取屬性, 比如: .attrs :

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

四、多值屬性

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

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

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

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

五、字符串

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

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

本集總結(jié):

下集見

Python tag解析

這個(gè)不難啊,用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中tag函數(shù) python attrs函數(shù)
分享鏈接:http://www.dlmjj.cn/article/doigjcc.html