如何从 HTML 结构中的 href 中获取值

How to get a value from inside an href in the HTML structure

我正在使用以下代码从站点获取值

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(),
            })

关于“Link”,我得到了很多信息,但我只想得到 href 中的 link,是否可以只得到那个信息?

我有一个做同样事情的例子。您应该使用类似这样的选择器:

.css('a[href*=topic]::attr(href)')

a tag 在我的例子中类似于 <a ... href="topic/1321343">something</a>.
关键是a::attr(href)
解析您的响应并使其尽可能小并获得您想要的 href 值。

This is my solution on a project for scraping Microsoft Academia 篇。链接的行获取“相关主题”部分中的项目。

这是另一个例子:

<span class="title">
  <a href="https://www.example.com"></a>
</span>

标准杆数:

Link = Link1.css('span.title a::attr(href)').extract()[0]