我正在使用Python 3和Scrapy。 这是我的HTML的一部分:
<div class="class=a1">
<span class="a-small">TEXT <a class="a-nm" href="/a/b=data1?ie=UTF8&what-i-want=Nice+Home&the-data=correct&text=ABA+DNA&sort=yes">That's Correct
</span>
</div>
在href
中有以下文字:what-i-want
。我想找到Nice+Home
,这是what-i-want=
之后和&
中href
之前的任何内容。
我试过这首先提取href
:
the_href = response.xpath('//a[contains(@href, "what-i-want")]/@href')
我预计它会返回
/a/b=data?ie=UTF8&what-i-want=Nice+Home&the-data=correct&text=ABA+DNA&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'>]
答案 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("&")[0])