看板 Python 關於我們 聯絡資訊
各位前輩好 我要用BeautifulSoup處理一段表格html,然後把表格橫軸和縱軸的相對應資料轉存成json 我大致已經完成,不過若表格中的內容有超連結,會碰上一些問題,例如: html=""" <td><a href="https://ceiba.ntu.edu.tw/992nihonkingendai378" target="_blank">日 本近現代史二</a>&nbsp;<br />History of Modern Japan(Ⅱ)</td> """ html = html.split() #這時候html裡的東西會被存成list;不過a、href這兩個應該要在一起的東西因為中間有 #空格的關係,分別被存在不同的位置,我猜這可能是接下來會出錯的原因 soup = BeautifulSoup(''.join(html)) print soup #<td><ahref>日本近現代史二&nbsp;<br />History of Modern Japan(Ⅱ)</ahref></td> #這時候連結會被吃掉、<a>標籤自動被改成<ahref> print soup.td.string #這時候按理說會把<td></td>之間的內容轉成string並回傳,但事實上卻回傳None 請問要怎麼解決這樣的問題呢? 另外,"&nbsp"這個html碼該怎麼處理掉? 我有大致把BeautifulSoup的Documentation瀏覽過了,但還是找不到對策..... 懇請高手指點一下,感激! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.161.124.104 ※ 編輯: BM0108 來自: 218.161.124.104 (05/22 12:48)
POSIX:直接字串取代掉 @@? 05/22 16:30
BM0108:我不太懂您的意思@@ 05/22 16:35
POSIX:我是指那些特殊字元 @@ 05/24 17:31
kilfu0701:因為<td>..</td>裡面包含其他的Tag 用soup.td.string會 05/25 13:49
kilfu0701:回傳None 用soup.td.contents[0]就可以抓到包含其他Tag 05/25 13:51
kilfu0701:的字串 05/25 13:51
kilfu0701:print soup.td.a.string 就會印出<a>..</a>裡的字串 05/25 13:54
kilfu0701:&nbsp可以用BeautifulStoneSoup來處理 05/25 14:34
kilfu0701:from BeautifulSoup import BeautifulStoneSoup 05/25 14:34
kilfu0701:soup = BeautifulStoneSoup(''.join(html), 05/25 14:35
kilfu0701: convertEntities=BeautifulStoneSoup.HTML_ENTITIES) 05/25 14:35
BM0108:感謝樓上!! 05/26 23:23