[問題] 關於htmlparser的tag
請問一下,關於tag的問題
我抓同一個網頁的資料,有些資料一直抓不出來
後來我查attrs發現,只要走到下面這段程式碼的第三行,就會中斷
print attrs
會到[('style', 'height:1.2em;overflow:hidden;word-break:break-all;')]
就停止
<div class="Prod_Desc">
<span class="RedName">
<div style="height:1.2em;overflow:hidden;word-break:break-all;"><a href="/gdsale/gdsale.asp?gdid=2331049 "style="color: #FF0000;">大全配新機~送4G+充電池組+原包...<br></a></div></span>
---
我想抓的是tag=a name=href下的value (也就是/gdsale/gdsale.asp?gdid=XXX)
我想請問該怎麼解決~"~
我的程式碼如下:
class parseLinks2(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.myinput=[]
def handle_starttag(self, tag, attrs):
if tag=='a':
for name,value in attrs:
if name=='href':
self.myinput.append(value)
---
請知道的幫個忙,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.216.17
※ 編輯: mirror012020 來自: 218.172.216.17 (09/15 00:24)
推
09/15 00:36, , 1F
09/15 00:36, 1F
請問要怎麼把style除掉呢?
我的想法是 re.search('style',attrs)
如果 is None 才執行,不然就不執行
可是 re.search('style',attrs)
一直錯誤,好像是因為attrs是清單,但是我不知道如何取出他>"<
推
09/15 00:52, , 2F
09/15 00:52, 2F
→
09/15 00:59, , 3F
09/15 00:59, 3F
請問~ 手動 re 是這樣寫嗎?
aa = re.match('<a[^>]+href="(.+?)"[^>]+>',scontent2)
aa.group(1)
可是一直出現錯誤訊息@@"
我還是搞不懂手動re的意思,是就不用進去htmlparser裡面了嗎?
只要把網頁讀出來?!
※ 編輯: mirror012020 來自: 218.172.216.17 (09/15 02:21)
推
09/15 07:48, , 4F
09/15 07:48, 4F
→
09/15 07:49, , 5F
09/15 07:49, 5F
用上面那個寫法,錯誤訊息是AttributeError
'NoneType' object has no attribute 'group'
我用了re.findall有成功叫出來,但是有些也會失誤@@"~
我請想問一下 <a[^>]+href="(.+?)"[^>]+> 的 "(.+?)"是什麼意思呢?
※ 編輯: mirror012020 來自: 218.172.216.111 (09/15 17:05)
→
09/15 18:26, , 6F
09/15 18:26, 6F
→
09/15 18:28, , 7F
09/15 18:28, 7F
→
09/15 18:28, , 8F
09/15 18:28, 8F
推
09/16 00:31, , 9F
09/16 00:31, 9F
謝謝你們!這個部份我解決囉^^
直接收尋re.findall('<a[^>]+href="(.+?)"', scontent2) 有成功將我要的收集在清單
※ 編輯: mirror012020 來自: 218.172.218.4 (09/21 12:49)
Python 近期熱門文章
PTT數位生活區 即時熱門文章