Проблема в том, что последний tbody
не существует в оригинальном источнике. Если вы получили этот xpath через какой-либо браузер, имейте в виду, что браузеры могут угадывать и добавлять недостающие элементы, чтобы сделать HTML действительным.
Удаление последней tbody
решает проблему.
In : import lxml.html as html
In : site = html.parse("http://www.baseball-reference.com/players/event_hr.cgi?id=bondsba01&t=b")
In : pitchers = site.xpath("/html/body/div[2]/div[2]/div[6]/table/tbody/tr/td[3]/table/tr[2]/td/a")
In : pitchers[0].text
Out: 'Terry Mulholland'
Но мне нужно добавить, что используемое вами выражение xpath довольно хрупкое. Один div
добавлен в каком-то удобном месте, и теперь у вас сломан скрипт. Если возможно, попытайтесь найти более подходящие ссылки, такие как id
или class
, которые указывают на ваше ожидаемое местоположение.