提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Get方法
- 二、urllib方法
- 三、可能遇到的问题
- 1、urllib.error.HTTPError: HTTP Error 403: Forbidden
- 总结
前言
python 网页下载url链接图片or文件
一、Get方法
import requests
def download_img(img_url, api_token):
print (img_url)
header = {"Authorization": "Bearer " + api_token} # 设置http header,视情况加需要的条目,这里的token是用来鉴权的一种方式
r = requests.get(img_url, headers=header, stream=True)
print(r.status_code) # 返回状态码
if r.status_code == 200:
open('C:\\Users\\cloudoxou\\Desktop\\img.png', 'wb').write(r.content) # 将内容写入图片
print("done")
del r
if __name__ == '__main__':
# 下载要的图片
img_url = "http://www.baidu/some_img_url"
api_token = "fklasjfljasdlkfjlasjflasjfljhasdljflsdjflkjsadljfljsda"
download_img(img_url, api_token)
二、urllib方法
import urllib.request
def download_img(img_url, api_token):
header = {"Authorization": "Bearer " + api_token} # 设置http header
request = urllib.request.Request(img_url, headers=header)
try:
response = urllib.request.urlopen(request)
img_name = "img.png"
filename = "C:\\Users\\cloudoxou\\Desktop\\"+ img_name
if (response.getcode() == 200):
with open(filename, "wb") as f:
f.write(response.read()) # 将内容写入图片
return filename
except:
return "failed"
if __name__ == '__main__':
# 下载要的图片
img_url = "http://www.baidu/some_img_url"
api_token = "fklasjfljasdlkfjlasjflasjfljhasdljflsdjflkjsadljfljsda"
download_img(img_url, api_token)
三、可能遇到的问题
1、urllib.error.HTTPError: HTTP Error 403: Forbidden
需要添加特殊的header,模仿浏览器,可用F12查看。
例如:
主要是由于该网站禁止爬虫导致的,可以在请求加上头信息,伪装成浏览器访问User-Agent,具体的信息可以通过火狐的FireBug插件查询
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
总结
个人记录不会的操作,向百度学习。。。。
更多推荐
python下载url图片或文件
发布评论