【问题标题】:How to extract text in similar a href by scrapy如何通过scrapy提取类似href中的文本
【发布时间】:2020-05-18 23:50:35
【问题描述】:

我想提取如下文本,

SUBTHEME_SELECTOR = '.subtheme::text',
YEAR_SELECTOR = '.year::text'
但我不知道如何提取主题,你能帮我吗?
THEME_SELECTOR = '//a[contains(@href, "/sets/theme-")]/@href' ???

<div class='tags floatleft'>
    <a href='/sets/10251-1/Brick-Bank'>10251-1</a> 
    <a href='/sets/theme-Creator-Expert'>Creator Expert</a> 
    <a class='subtheme' href='/sets/theme-Creator-Expert/subtheme-Modular-Buildings'>Modular Buildings</a> 
    <a class='year' href='/sets/theme-Creator-Expert/year-2016'>2016</a> 
</div>

【问题讨论】:

  • 提取是什么意思?什么原因?

标签: css scrapy href


【解决方案1】:

你没看错。即使没有实际抓取网站,您也可以非常简单地对其进行测试:

import scrapy

TEXT = """
<div class='tags floatleft'>
    <a href='/sets/10251-1/Brick-Bank'>10251-1</a> 
    <a href='/sets/theme-Creator-Expert'>Creator Expert</a> 
    <a class='subtheme' href='/sets/theme-Creator-Expert/subtheme-Modular-Buildings'>Modular Buildings</a> 
    <a class='year' href='/sets/theme-Creator-Expert/year-2016'>2016</a> 
</div>
"""

s = scrapy.Selector(text=TEXT)
link = s.xpath('//a[contains(@href,"/sets/theme-")]/@href').extract_first()
text = s.xpath('//a[contains(@href,"/sets/theme-")]/text()').extract_first()
print(link)
print(text)

生产:

/sets/theme-Creator-Expert
Creator Expert

【讨论】:

  • 这是最后一个'a[href*=\/sets\/theme-]::text'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 2017-09-30
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 2016-10-02
相关资源
最近更新 更多