关于网页referer以及破解referer反爬虫的办法 您所在的位置:网站首页 爬虫网站什么意思 关于网页referer以及破解referer反爬虫的办法

关于网页referer以及破解referer反爬虫的办法

2023-12-25 01:01| 来源: 网络整理| 查看: 265

有referer

referer是什么: 图片防盗链的技术应该还有其他的,目前了解到的是浏览器的referer,其实这是错误的拼写,正确是应该是referrer。 不过现在可以看到Chrome的开发者工具里,还是显示的是前者,拼写不重要,重要的是理解它的含义。

简单来讲,referer的作用就是记录你在访问一个目标网站时,在访问前你的原网站的地址, 比如用Chrome从知乎的某个板块到另外一个,那么你在的这个网站就是原网站,按F12,选中Network选项, 从页面内进入一个网站,可以从这个网站的header即头信息中,看到referer就是原来的那个网站。

但是!!!!!!!!从头信息中可以看到Referer-policy的字样,它的规则是: 点我,查看referer-policy的详细规则。

一般网站的policy都是 no-referrer-when-downgrade,它的演示在上述网站里很清晰了,这里不再赘述。

这里要注意的是,由于Chrome默认是打开网页时,原地打开,也就是不弹出新窗口,这样才可以用F12监控referer,比如qq浏览器,打开网页是跳出,也不能看到referer的(这里也许是我自己不懂怎么看,如果可以的话,烦请评论告知。) 注:想要Chrome不原地打开,也就是打开新窗口的方法是win10下, ctrl+鼠标左键点击网页。

无referer

很简单,根据referer的作用可以知道,把网页地址复制到浏览器新页面的地址栏里,进行直接访问,这样的话就不会有 referer,同样地,浏览器刷新也不会有referer。这里牵涉到python爬虫中防盗链的问题,下面再说。

referer的作用

由于referer是请求网页中,也就是发起HTTP请求中header的一部分,所以可以用来做网页的图片防盗链!** 比如一个网页的图,想用python下载到自己的电脑里,用urllib.request或者requests第三方库访问图片时,爬不下来, 这是因为python提交request申请的时候,就类似于在浏览器中的空地址栏里键入这个网页然后访问,根据上面说的,无referer,这时网站的设置比如是要求有referer,且referer的网站必须是你进来之前的网站,也就是这个图片的主页。

破解referer反爬虫的办法

方法很简单! 既然要求你传入图片主页面的referer,在构造header的时候,传入Referer参数(注意R要大写),它的值为与这个图片链接相关的网站,或者这个图片链接地址的原网站就可以了,听起来很生涩,下面上代码。 戳我,看fake_useragent的安装和使用.

from fake_useragent import UserAgent #fake_useragent的介绍见我另一篇博文 #伪装成浏览器 ua = UserAgent() headers = {'User-Agent':ua.random} #一般网站伪装成这样也就够了,但是如果想爬图片,图片反盗链的话。如下 #其实很好理解,就是告诉你要下载的那个图片页面,我是从主页面来的,现在把数据给我。 headers = {'User-Agent':ua.random,'Referer':'这里放入图片的主页面'} #然后在后续requests中传入header即可 一些说明:

当然了,不是所有网站都有图片防盗链的,所以很多时候大可不必这么复杂, 普通的图片爬取下载推荐用 urllib.request 中的urlretrieve模块来做,这样代码结构简单易懂,逻辑更清晰。

如果遇到防盗链的图片,一般思路就是先爬到所有图片的地址.jpg —–>将它们储存在列表中 —–>遍历访问图片地址,然后 用 ‘wb’的格式打开文件写入,文件名根据图片地址动态改变。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有