我就像这个教程http://docs.python-guide.org/en/latest/scenarios/scrape/一样,废弃了一个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 :(得分:1)
在HTML内容中,没有tbody
标记。
在代码中,我们正在考虑使用tbody
标记来查找目标标记。
vaga = tree.xpath('/html/body/center/table/tbody/tr[2]/td/table[2]/tbody/tr[108]/td[9]')
这将始终返回空列表,因为HTML内容中不存在tbody
标记。
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> </strong></font></p>
<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD align=center> <br>
<font color="Black" size=2><b> Horário de Aulas 2015/1</b></font><br> </TD>
</TR>
</TABLE>