返回信息流情景:某个网站应该是做了个外部下载加水印的检测。原图是没有水印的,但是我用Python的request.get下载下来的图片是加了水印的,用迅雷下载同一个url的时候,却没有水印,深感疑惑,但求甚解。
另,单独使用浏览器打开图片url的话也是有水印的
想问的是,这样的检测应该是看http头的来判断的吧,我要如何才能下到无水印的图片呢?拜谢
打印了一下迅雷下载的时候的请求头
Accept: */* Cache-Control: no-cache Connection: Keep-Alive Host: 【这里也不写】 Pragma: no-cache Range: bytes=0- Referer: 【这里就不写了】 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; Shuame)
python的ua是这个python-requests/2.1.0 CPython/2.7.6 Linux/2.6.32-431.29.2.el6.x86_64
-----
自己搞明白了。
判断是否被外链,是由头的两个东西决定的,缺一不可。
一个是Host,一个是Referer,这两个必须是被认可为本站的,这样就不会被打水印了。
这是一条镜像帖。来源:北邮人论坛 / www-technology / #30759同步于 2015/7/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[问题][自己解决了]python的request.get和迅雷下载有什么区别?
cyxsheep
2015/7/13镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
Accept: */* Cache-Control: no-cache Connection: Keep-Alive Host: 【这里也不写】 Pragma: no-cache Range: bytes=0- Referer: 【这里就不写了】 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; Shuame)
看不太出决定性因素在哪。。
【 在 zishi 的大作中提到: 】
: 抓包看看迅雷的请求和普通请求的区别
s = requests.Session()
s.headers['User-Agent'] = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; Shuame)'
然后get,还是有水印
【 在 june0334 的大作中提到: 】
: 估计跟User-Agent有关系,照着他的超过来。。。