#python #scrapy
Вопрос:
Я использую следующий код для получения значений с сайта
import scrapy
class scraping(scrapy.Spider):
name = 'NewsSpider'
start_urls = ['https://www.uol.com.br/']
def parse(self, response):
news = response.xpath('//article')
for n in news:
print({
'Link': n.xpath("//a[@class='hyperlink headlineSub__link']").get(),
'Title': n.xpath('//a/div/h3/text()').get(),
})
В разделе «Ссылка» я получаю много информации, но я хочу получить только ссылку внутри href, можно ли получить только эту информацию?
Ответ №1:
У меня есть образец того, как я делаю то же самое. Вы должны использовать что-то вроде этого селектора:
.css('a[href*=topic]::attr(href)')
a tag
в моем случае было нечто подобное <a ... href="topic/1321343">something</a>
.
Ключ в том, чтобы a::attr(href)
проанализируйте свой ответ и сделайте его как можно меньшим и получите желаемое значение href.
Это мое решение для проекта по удалению статей Microsoft Academia. Связанная строка получает элементы в разделе «Связанные темы».
Вот еще один пример:
<span class="title">
<a href="https://www.example.com"></a>
</span>
парс по:
Link = Link1.css('span.title a::attr(href)').extract()[0]