2017-02-11 15 views
2

(отказ от ответственности: я только смутно знаю питона & я довольно новыми для кодирования)Использование Xpath, чтобы получить якорный текст ссылки в Python, когда связь не имеет класса

Я пытаюсь получить текстовую часть a link, но у него нет определенного класса, и в зависимости от того, как я использую свой код, я получаю слишком много вещей (xpath не был достаточно конкретным) или пустой [].

скриншот того, что я пытаюсь получить доступ является:

enter image description here

Дерево все HTML со страницы. Код, который возвращает заготовку:

cardInfo=tree.xpath('div[@class="cardDetails"]/table/tbody/tr/td[2]/a/text()')

код, который возвращает слишком много:

cardInfo=tree.xpath('a[contains(@href, 'domain_name')]/text()')

Я попытался вдаваясь в Осмотреть в хроме и копирование XPath, который также дал мне ничего. Я успешно получил другие вещи из страницы, которые представляют собой просто текст, а не ссылки. Супер жаль, если я не объясню это хорошо, но кто-нибудь имеет представление о том, что я могу написать?

+0

Pl легкость предоставить нам URL-адрес, который вы очищаете, –

+0

Абсолютно, извините! [link] (http://shop.tcgplayer.com/pokemon/jungle/nidoqueen-7) –

+0

Вы используете lxml правильно? –

ответ

2

Если вы имели в виду, чтобы найти текст рядом с Set Name::

>>> import lxml.html 
>>> tree = lxml.html.parse('http://shop.tcgplayer.com/pokemon/jungle/nidoqueen-7') 
>>> tree.xpath(".//b[text()='Set Name:']/parent::td/following-sibling::td/a/text()") 
['Jungle'] 
  • .//b[text()='Set Name:'] найти b тег с Set Name: текстом,
  • parent::td - родитель тд элемент из него,
  • following-sibling::td - следующий тд элемент