代码之家  ›  专栏  ›  技术社区  ›  TJ1

Python Scrapy:在“href”中查找文本

  •  1
  • TJ1  · 技术社区  · 6 年前

    我正在使用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
    

    这样我就可以提取 漂亮+家 但它不起作用。

    我该怎么做?

    使现代化

    这就是我在 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 回复  |  直到 4 年前
        1
  •  2
  •   Andersson    6 年前

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