作者godman362 (卯)
看板Python
标题[问题] lxml parse html
时间Fri Sep 27 17:08:22 2013
小弟目前想用lxml parse html的资料,不过卡在一个地方解不出来
下面一段是我想解的html,我要把下面的tag <p>的字串分别解出来
卡的点在Author之後,tag <strong>的部份我可以取得,但是後面就抓不出来了
不知道是哪边处理出错,还请各位先进指点一下
<div class="bookinfo">
<h2>C Language Teaching Manual 4th Edition (Traditional Chinese Edition)</h2>
<p><strong>ISBN-13:</strong> <a href="/isbn/9789574424849">9789574424849</a></p>
<p><strong>ISBN-10:</strong> <a href="/isbn/9574424847">9574424847</a></p>
<p><strong>Author:</strong> HongWeiEn</p>
<p><strong>Binding:</strong> Paperback</p>
<p><strong>Publisher:</strong> QiBiaoChuBanGuFenYouXianGongSi</p>
<p><strong>Published:</strong> December 2007</p>
</div>
以下是程式码的部份:
#ISBN-13, ISBN-10, Author, Binding, Publisher, Published
book_info = inforoot[0].xpath('p')
for info in book_info:
print info.xpath('strong')[0].text
if info.xpath('a'):
print info.xpath('a')[0].text
else :
print info[0].text
--
要
感谢的人太多了,那就
谢天吧
要
改得程式码太多了,那就
改天吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.71.154
1F:→ kilfu0701:''.join(info.xpath('./text()')) 最後一行换这样 (?) 09/27 17:31
2F:→ godman362:欸...可以欸,只是为什麽直接text会是tag <strong>的值 09/27 18:05
3F:→ godman362:根据K大的解法,这样做跟我直接取text应该会一样啊... 09/27 18:05
4F:→ godman362:我不是很清楚原因欸,不知道可否烦请K大解释一下 09/27 18:06
6F:→ kilfu0701:.text Text before the first subelement. 09/27 18:22
7F:→ kilfu0701:所以你这个形况 就会抓不到东西 09/27 18:23
8F:→ godman362:原来如此,这样我懂了,感谢K大 <(__ __)> 09/27 19:11
9F:→ mail6543210:要抓後面的可以用tail 09/28 17:14
10F:→ godman362:请教M大,tail的用法是指:info.tail吗? 09/30 08:10
11F:→ godman362:因为我刚刚这样一试是针对Author开始後面就都是空白的 09/30 08:10
12F:→ godman362:还是我再查一下tail的用法好了,可能是我用错了 09/30 08:10
13F:→ godman362:看来是我用错了,是info[0].tail这样才对 09/30 08:16
14F:→ godman362:感谢M大提供的另一种解法 09/30 08:16