Как извлечь текст в подобном HREF путем scrapy - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу извлечь текст, как показано ниже,

SUBTHEME_SELECTOR = '.subtheme :: text',
YEAR_SELECTOR = '.year :: text'
, но я не уверен, как извлечь Тема, вы можете мне помочь?
THEME_SELECTOR = '// a [содержит (@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>

1 Ответ

1 голос
/ 04 февраля 2020

Вы правильно поняли. Вы можете проверить это довольно просто, даже не просматривая сайт:

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
...