【问题标题】:Why are some links not returning a referer from the request header?为什么有些链接没有从请求标头返回引用者?
【发布时间】:2021-02-12 19:01:31
【问题描述】:

我几乎已经完成了基于 Scrapy 的 CrawlSpider 构建的网络爬虫,其目的是爬取站点以检查损坏的外部链接。爬虫测试外部链接并报告 HTTP 状态代码、链接文本和链接所在的页面。

def external_url(self, response):
        item = linkList()
        item['link_text'] = response.meta['link_text']
        item['link_url'] = response.url
        item['link_status'] = response.status
        item['link_location'] = response.request.headers.get('Referer', None)

不过,我注意到,大约 1/3 的已检查外部链接没有返回引荐来源网址。我已经通过 url 对结果进行了排序,似乎某些域只是不返回引用者。我检查了 HTTP 状态码,几乎所有的 URL 都返回了200。我尝试将REFERER_POLICY 从默认更改为unsafe_url,因为这似乎是保证在标题中发送引用链接的唯一选项,但这并没有改变结果。对此我有什么可以做的,或者这可能是外部域的问题吗? 感谢您的帮助。

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    我发现网站上的REFERER_POLICY 阻止了请求包含引荐来源信息。我与网站管理员交谈,将子域上的设置更改为unsafe_url,我不再得到空的link_location 字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-11
      • 2021-08-10
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 2022-12-20
      • 2020-04-26
      • 2019-10-13
      相关资源
      最近更新 更多