这几天在练习爬虫的时候,遇到一个问题,
通过 python 代码从站点中拿到了目标图片的 url ,
但是,在持久化到本地时,出现了错误,所有保存下来的图片都报错:文件损坏,
而且,将图片 url 直接放到浏览器里,就会出现
Access denied Error code 1020
页面,
看到这里,就严重的说明,你的目标地址正确,但却没有得到你想要的页面,这就是妥妥的 反盗链。
解决方法很简单,在 headers
里带上指定的 referer
,就能解决问题。
不过,新的问题又出现了,
我定义了两个变量,url
和 headers
,并做了相应的配置,
使用 requests
模块的代码如下:
Response=requests.get(url,headers)
但是,在代码执行后,仍是出现了之前图片不能正常显示报文件损坏的错误,
奇了怪了,明明 在 headers
里有指明 referer
,但为什么还是被 反盗链 给收拾了。
百思不得其解,整整上网查了 10 多天,也没找到个所以然,
最后,还是请教了老师才将问题解决,
这里打个“小广告”,我老师往pypi库里在很多年前写过一个自动 fake 一个 user_agent 的模块,让代码变得非常的简洁,省事好用,推荐给大家。
1、 pip install
kuser-agent
2、 importkuser_agent
3、 heads={‘user-agent’:kuser_agent.get()
}
老师给的代码,如下:
Response=requests.get(url=url,headers=headers)
没错,就差在,参数的书写格式上了,
再和我的代码比较一下,
Response=requests.get(url,headers)
所以,以后的代码一定要按找规范书写,避免不必要的错误和干扰。
march the 05th 2023 Sunday,