2015-02-24 55 views
0

我在做這個教程,http://docs.python-guide.org/en/latest/scenarios/scrape/,要廢棄一個html表,並且效果不好。使用lxml和請求進行HTML刮擦

我的代碼:

import requests 
from lxml import html 

page = requests.get('http://www.dti.ufv.br/horario/horario.asp?ano=2015&semestre=1&depto=MAT') 
tree = html.fromstring(page.text) 

vaga = tree.xpath('/html/body/center/table/tbody/tr[2]/td/table[2]/tbody/tr[108]/td[9]') 
print vaga 

我認爲這個問題是使用XPath ...我沒有像使用谷歌Chrome瀏覽器說,教程,但它不是在教程喜歡。任何人都可以幫助我獲得正確的XPath?多謝你們!

+0

你要哪行的HTML內容進行定位? – 2015-02-24 15:48:05

回答

1

在HTML內容中,沒有tbody標記。

在代碼中,我們正在考慮使用tbody標籤來查找目標代碼。

vaga = tree.xpath('/html/body/center/table/tbody/tr[2]/td/table[2]/tbody/tr[108]/td[9]') 

這將始終返回空列表,因爲tbody標籤不存在於HTML內容。

HTML內容:

<table width="760" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td><img src="img/topo.jpg" width="760" height="101"></td> 
    </tr> 
    <tr> 
     <td background="img/conteudo.jpg"><p align="right"><img src="img/setas_voltar.jpg" width="8" height="7"> <font size="1"><strong><a href="javascript:history.back();">voltar</a>&nbsp;</strong></font></p> 
     <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=1> 
     <TR> 
      <TD align=center> <br> 
       <font color="Black" size=2><b> Hor&aacute;rio de Aulas 2015/1</b></font><br>   </TD> 
     </TR> 
     </TABLE> 
+0

是的,但谷歌瀏覽器返回。我怎樣才能得到正確的XPath呢?我想從該頁面獲得一張正確的表格。 – carlosza 2015-02-24 15:48:59

+0

我們想要從表格中選擇哪一行?從xpath中移除'tbody'並重試。我不知道Google Chrome,我認爲Google Chrome會自動插入'tbody'標籤。 – 2015-02-24 15:52:47

+0

請參閱'MAT 135'第二行?我想要0號的行。我想要那個號碼。剩下的是空缺,65號是全部空缺。我想處理這個數字,看看是否有空缺尚未加入MAT 135類,謝謝 – carlosza 2015-02-24 15:58:28