[問題] 關於htmlparser的tag

看板Python作者 (小B)時間15年前 (2010/09/14 23:43), 編輯推噓4(405)
留言9則, 2人參與, 最新討論串1/1
請問一下,關於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
先用 re 把 style 除掉? 我想不到方法的時候會這樣做
09/15 00:36, 1F
請問要怎麼把style除掉呢? 我的想法是 re.search('style',attrs) 如果 is None 才執行,不然就不執行 可是 re.search('style',attrs) 一直錯誤,好像是因為attrs是清單,但是我不知道如何取出他>"<

09/15 00:52, , 2F
看來就是內建的htmlparser容錯比較弱 你可以用lxml
09/15 00:52, 2F

09/15 00:59, , 3F
不然手動re <a[^>]+href="(.+?)"[^>]+> group(1)取出
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
就是把網頁當字串來找 發現用re.findall的話連group都不用
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:28, , 7F
.任意字元 +?一個以上越短越好 ()把這段群組起來
09/15 18:28, 7F

09/15 18:28, , 8F
會NoneType表示沒有找到合pattern的 大概哪裡有錯?
09/15 18:28, 8F

09/16 00:31, , 9F
手動re 我會做在 feed 裡 或是在 feed data 之前
09/16 00:31, 9F
謝謝你們!這個部份我解決囉^^ 直接收尋re.findall('<a[^>]+href="(.+?)"', scontent2) 有成功將我要的收集在清單 ※ 編輯: mirror012020 來自: 218.172.218.4 (09/21 12:49)
文章代碼(AID): #1CZvWl_V (Python)
文章代碼(AID): #1CZvWl_V (Python)