Извлечь значение атрибута с помощью XPath в Python

У меня есть HTML:

<table>
<tbody>
<tr>
<td align="left" valign="top" style="padding: 0 10px 0 60px;">
<img src="/files/39.jpg" width="64" height="64">
</td>
<td align="left" valign="middle"><h1>30 Rock</h1></td>
</tr>
</tbody>
</table>

Используя Python и LXML, мне нужно извлечь значение из атрибута src элемента <img>. Вот что я пробовал:

import lxml.html
import urllib

# make HTTP request to site
page = urllib.urlopen("http://my.url.com")
# read the downloaded page
doc = lxml.html.document_fromstring(page.read())

txt1 = doc.xpath('/html/body/table[2]/tbody/tr/td[1]/img')

Когда я печатаю txt1, я получаю пустой список только []. Как я могу это исправить?


person Eugene Shmorgun    schedule 27.07.2012    source источник
comment
Используйте 1_. Что касается того, почему вы получаете пустой список, этого и следовало ожидать, если это фактический HTML, который вы анализируете, потому что он не соответствует XPath.   -  person Fred Foo    schedule 28.07.2012
comment
Спасибо за совет. Это просто вырезка из HTML-документа.   -  person Eugene Shmorgun    schedule 28.07.2012


Ответы (1)


Используйте этот XPath:

//img/@src

Он извлечет src атрибутов всех потомков img элементов узла контекста.

person Kirill Polishchuk    schedule 27.07.2012