2015-07-02 54 views
0

這是我的源代碼:Python的Scrapy - 的XPath嵌套表標籤

<table width="100%" cellspacing="0" cellpadding="0" border="0"> 
<tbody> 
<tr> 
<td align="center"> 
<table width="100%" cellspacing="0" cellpadding="0" border="0"> 
<tbody> 
<tr> 
<td style="border-left: 1px solid rgb(153, 153, 153); border-right: 1px solid rgb(153, 153, 153);"> 
<table width="100%" cellspacing="0" cellpadding="0" border="0"> 
<tbody> 
<tr> 
<tr> 
<td height="511"> 
<table width="100%" cellspacing="0" cellpadding="5" border="0" height="500"> 
<tbody> 
<tr> 
<td width="1%" valign="top" height="500"> 
<table width="100%" cellspacing="1" cellpadding="1" bordercolor="#CCCCCC" border="0" bgcolor="#FFFFFF" align="center"> 
<tbody> 
<tr bgcolor="#BB375F" bordercolor="#CCCCCC"> 

我怎樣寫一個XPath才能走到最深的<tr>標籤?

這是我已經試過:

top_table = response.xpath("//table[4]/tbody/tr/td") 
content_table = top_table.xpath("table") 
print content_table 

這是我得到的輸出:

[ < Selector xpath='table' data=u' < table width="100%" border="0" cellspaci' > ]

基本上我能去的倒數第二個表中第一行和最裏面的表是我想要達到的。不知道如何繼續或我要去哪裏錯了? 歡迎任何幫助或建議。謝謝!

回答

0

基本上我能夠到達倒數第一行的表,最內層的表是我想要達到的。

一種可能的方式獲得最內側table通常是通過確保考生table不具有後代table元素:

//table[not(.//table)] 

,所以我會建議嘗試這樣的事情讓tr/td從最內側開始table

top_table = response.xpath("//table[not(.//table)]/tbody/tr/td")