爬虫与反爬虫的较量-图片反爬

前言

在去年6月吧,刚转行做爬虫的时候,经常拿图片网还有小说网练手,无意中发现一个壁纸网站叫做娟娟壁纸网,有好多高清壁纸(这不是广告,哈哈)

当时是写了全站爬取的代码。以为自己大工告成的时候,结果刚运行,就发现爬出来的图片不对。

每张图片都是这样,我以为遇到了IP限制,于是使用代理,结果仍然是失败。

难道是请求头做了限制?好,那我全部带上。结果依旧失败。

当时也是忙于找工作,也没静下心来仔细想,今天回过头来继续盘它。

虽然最后巧妙的用了get请求爬取成功,但是还是没搞明白原图反爬的原因。

下面来看一看究竟是怎么回事。

分析网站

附上链接:http://www.jj20.com/bz/zrfg/ssrh/5565.html

图片url在网站html代码中,我爬取的也是这张图片。

复制图片链接到浏览器访问。

正常,浏览器能加载,爬虫为什么就不能下载。刷新图片,结果图片没了,出现了和爬虫一样的结果。

回到网站,刷新,结果,图片没了,加载不出来。

假设是缓存导致的,清理一下浏览器的cookie和缓存。再次刷新,图片又出来了。

爬虫直接请求链接会失败,具体的反爬策略,我们也不清楚。默认为图片只能在网站上加载,单独访问会失败。

从网站分析图片,网站里可能有下载链接。

生成壁纸,根据分辨率来的,之前网站爬的应该都是原图,点进去看一下。

刷新,还是这张图,可以重复访问。

http://cj.jj20.com/d/cj0.php?p=/up/allimg/611/031213123016/130312123016-0.jpg&w=1536&h=864

这是一个get请求,提交了三个参数p(图片链接),w(宽),h(高),生成一张1536乘864的图片。

单张图片爬取

(写一个demo,测试了一下)

import  requests
url = "http://cj.jj20.com/d/cj0.php?p=/up/allimg/611/031213123016/130312123016-0.jpg&w=1536&h=864"
res = requests.get(url).content #以二进制字节码保存
with open(‘1.jpg‘,‘wb‘) as f:
    f.write(res)

(单张图片爬取成功)宽和高都是可以自己改的,看自己桌面分辨率自己改。

本文主要介绍爬取思路,全站爬取代码后续再补充。

对于上面的网站原图反爬,我至今不是特别明白是什么原因,希望了解这方面的大牛,可以留言告知,我会尽快回复。

温馨提示

  • 如果您对本文有疑问,请在评论部分留言,我会在最短时间回复。
  • 如果本文帮助了您,也请评论关注,作为对我的一份鼓励。
  • 如果您感觉我写的有问题,也请批评指正,我会尽量修改。
  • 本文为原创,转载请注明出处。
  • 本文所有代码仅供学习参考,在爬取的同时考虑对方的服务器承受能力,适可而止。

原文地址:https://www.cnblogs.com/lyxdw/p/10513967.html

时间: 2024-11-09 04:33:23

爬虫与反爬虫的较量-图片反爬的相关文章

爬虫与反爬虫

转自:https://mp.weixin.qq.com/s/-w-yC6PCdTOpfKS8HZEleA 前言 爬虫与反爬虫,是一个很不阳光的行业. 这里说的不阳光,有两个含义. 第一是,这个行业是隐藏在地下的,一般很少被曝光出来.很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实.这可能是出于公司战略角度来看的,与技术无关. 第二是,这个行业并不是一个很积极向上的行业.很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历.面试的时候,

给网站加入优雅的实时反爬虫策略

你的网站内容很有价值,希望被google,百度等正规搜索引擎爬虫收录,却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成.本文将探讨如何在网站中加入优雅的反爬虫策略. [思路] 反爬虫策略要考虑以下几点: 能被google.百度等正规搜索引擎爬虫抓取,不限流量和并发数: 阻止山寨爬虫的抓取: 反爬虫策略应该是实时检测的,而不是通过一段时间后的访问统计分析得出: 误判后的人性化处理(优雅之所在): 大部分的爬虫不是以浏览器方式来访问页面的,爬虫只下载网页的html源代码,不加载包含在页面中的js/

如何给网站加入优雅的反爬虫策略

你的网站内容很有价值,希望被google,百度等正规搜索引擎爬虫收录,却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成.本文将探讨如何在网站中加入优雅的反爬虫策略. [思路] 反爬虫策略要考虑以下几点: 能被google.百度等正规搜索引擎爬虫抓取,不限流量和并发数: 阻止山寨爬虫的抓取: 反爬虫策略应该是实时检测的,而不是通过一段时间后的访问统计分析得出: 误判后的人性化处理(优雅之所在): 大部分的爬虫不是以浏览器方式来访问页面的,爬虫只下载网页的html源代码,不加载包含在页面中的js/

基于C#.NET的高端智能化网络爬虫(一)(反爬虫哥必看)

前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅.怜悯.嘲讽.猥琐)的方式来完美碾压爬虫开发者.今天我就先带大家开发一个最简单低端的爬虫,突破携程网超高智商的反爬虫技术. 一.什么是爬虫? 很多人说我们这些搞软件的人,总喜欢把虚拟世界里的事物跟现实中的东西扯上关系.这点我真不否认,脱离了现实,我们伟大的创举还有何意义? “爬虫”就是个例子,它对于我们开发人员而言,就是一段用来自动化采集网站数据的程序,结果跟现实中的虫子扯上了关系.听说是Googl

反-反爬虫:用几行代码写出和人类一样的动态爬虫

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:李大伟 Phantomjs简介 什么是Phantomjs Phantomjs官网介绍是:不需要浏览器的完整web协议栈(Full web stack No browser required),也就是常说的无头浏览器--或者好听点叫做:无界面的web解析器. Phantomjs的特点 由于"无头"--免去了渲染可视化的网页界面,她的速度要比一般的浏览器快不少,又因为她是完整的web协议栈,所以不仅仅提供了JavaScri

php爬虫抓取信息及反爬虫相关

58爬虫了百姓,赶集和58互爬,最后各种信息相同,都是爬虫后的数据库调用,潜规则啊,几家独大还暗中各种攻击,赶驴网的幽默事例我不想多评价.这个时代是砸.钱*养.钱的时代,各种姚晨杨幂葛优,各种地铁公车广告,各种卫视广告,铺天盖地~~~ 来谈php爬虫抓取信息~~ php爬虫首推Curl函数了,先来认识下它. 0x01.curl扩展的安装: 1.确保php子文件夹ext里面有php_curl.dll(一般都有的,一般配置时候会设置环境变量的) 2.将php.ini里面的;extension=php

网站反爬虫策略

反爬虫策略,表面上看似乎跟WEB系统优化没有关系,经过分析,发现该策略是可以归到WEB性能优化的系列之中. 通过分析apache日志发现,某系统40%的带宽和服务器资源都消耗在爬虫上,如果除去10%-15%搜索引擎的爬虫,做好反爬虫策略,能节省20%-25%的资源,其实是变向优化了web系统. 一.爬虫请求与正常用户请求的区别 爬虫请求是类似httpClient的机制或curl,wget的命令,用户请求一般走浏览器. 区别:爬虫请求一般不会执行页面里的异步JavaScript操作,而用户请求则执

【爬虫】关于企业信用信息公示系统-加速乐最新反爬虫机制

( ̄▽ ̄)~*又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构. 升级后网站的层次结构并没有太多变化,表面上是国家企业信用信息公示系统 的验证码又升级了.之前是 点按后滑动拼图方式: 现在的验证码主要是按顺序点击图片汉字验证码,但也不排除会出现以前的点按拖动验证码: 验证码的破解这里就不详细介绍了,需要的可以私信我们一起讨论研究下,详细可参考极验验证码破解-源码+破解手册,极验二代和三代验证码破解的方式基本都是一个套路的

关于反爬虫策略

一.为什么要反爬虫 1.爬虫占总PV比例较高,这样浪费钱(尤其是三月份爬虫). 三月份爬虫是个什么概念呢?每年的三月份我们会迎接一次爬虫高峰期. 最初我们百思不得其解.直到有一次,四月份的时候,我们删除了一个url,然后有个爬虫不断的爬取url,导致大量报错,测试开始找我们麻烦.我们只好特意为这个爬虫发布了一次站点,把删除的url又恢复回去了. 但是当时我们的一个组员表示很不服,说,我们不能干掉爬虫,也就罢了,还要专门为它发布,这实在是太没面子了.于是出了个主意,说:url可以上,但是,绝对不给