Python Scrapy:在" href"中查找文本

时间:2018-05-04 13:59:22

标签: python-3.x xpath scrapy

我正在使用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 :(得分:1)

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])