Python Scrapy: поиск текста в «href» - PullRequest
0 голосов
/ 04 мая 2018

Я использую Python 3 и Scrapy. Это часть моего HTML:

<div class="class=a1">
  <span class="a-small">TEXT <a class="a-nm" href="/a/b=data1?ie=UTF8&amp;what-i-want=Nice+Home&amp;the-data=correct&amp;text=ABA+DNA&amp;sort=yes">That's Correct
  </span>
</div>

В href есть этот текст: what-i-want. Я хотел бы найти Nice+Home, что-нибудь после what-i-want= и до &amp; в href.

Я пытался это сначала извлечь href:

the_href = response.xpath('//a[contains(@href, "what-i-want")]/@href')

Я ожидал, что он вернется

/a/b=data?ie=UTF8&amp;what-i-want=Nice+Home&amp;the-data=correct&amp;text=ABA+DNA&amp;sort=yes

чтобы я мог извлечь из него Nice+Home, но он не работает.

Как я могу это сделать?

обновление

это то, что я вижу на the_href выходе:

[<Selector xpath='//a[contains(@href, "what-i-want")]/@href' data='/a/b=data1?ie=UTF8&t'>, 
<Selector xpath='//a[contains(@href, "what-i-want")]/@href' data='/a/b=data2?ie=UTF8&t'>, 
<Selector xpath='//a[contains(@href, "what-i-want")]/@href' data='/a/b=data3?ie=UTF8&t'>, 
<Selector xpath='//a[contains(@href, "what-i-want")]/@href' data='/a/b=data4?ie=UTF8&t'>]

1 Ответ

0 голосов
/ 04 мая 2018

response.xpath('//a[contains(@href, "what-i-want")]') должен вернуть вам список узлов ссылок. Если вы хотите получить список атрибутов гиперссылки, попробуйте

the_href = response.xpath('//a[contains(@href, "what-i-want")]/@href').extract()

Затем вы можете извлечь необходимые значения как:

for href in the_href:
    print(href.split("what-i-want=")[-1].split("&amp")[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...