作者BM0108 (冲)
看板Python
标题[问题] BeautifulSoup处理超连结的问题
时间Sun May 22 12:48:28 2011
各位前辈好
我要用BeautifulSoup处理一段表格html,然後把表格横轴和纵轴的相对应资料转存成json
我大致已经完成,不过若表格中的内容有超连结,会碰上一些问题,例如:
html="""
<td><a href="
https://ceiba.ntu.edu.tw/992nihonkingendai378" target="_blank">日
本近现代史二</a> <br />History of Modern Japan(Ⅱ)</td>
"""
html = html.split()
#这时候html里的东西会被存成list;不过a、href这两个应该要在一起的东西因为中间有
#空格的关系,分别被存在不同的位置,我猜这可能是接下来会出错的原因
soup = BeautifulSoup(''.join(html))
print soup
#<td><ahref>日本近现代史二 <br />History of Modern Japan(Ⅱ)</ahref></td>
#这时候连结会被吃掉、<a>标签自动被改成<ahref>
print soup.td.string
#这时候按理说会把<td></td>之间的内容转成string并回传,但事实上却回传None
请问要怎麽解决这样的问题呢?
另外," "这个html码该怎麽处理掉?
我有大致把BeautifulSoup的Documentation浏览过了,但还是找不到对策.....
恳请高手指点一下,感激!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.161.124.104
※ 编辑: BM0108 来自: 218.161.124.104 (05/22 12:48)
1F:推 POSIX:直接字串取代掉 @@? 05/22 16:30
3F:→ BM0108:我不太懂您的意思@@ 05/22 16:35
4F:推 POSIX:我是指那些特殊字元 @@ 05/24 17:31
5F:推 kilfu0701:因为<td>..</td>里面包含其他的Tag 用soup.td.string会 05/25 13:49
6F:→ kilfu0701:回传None 用soup.td.contents[0]就可以抓到包含其他Tag 05/25 13:51
7F:→ kilfu0701:的字串 05/25 13:51
8F:→ kilfu0701:print soup.td.a.string 就会印出<a>..</a>里的字串 05/25 13:54
9F:→ kilfu0701: 可以用BeautifulStoneSoup来处理 05/25 14:34
10F:→ kilfu0701:from BeautifulSoup import BeautifulStoneSoup 05/25 14:34
11F:→ kilfu0701:soup = BeautifulStoneSoup(''.join(html), 05/25 14:35
12F:→ kilfu0701: convertEntities=BeautifulStoneSoup.HTML_ENTITIES) 05/25 14:35
13F:→ BM0108:感谢楼上!! 05/26 23:23