admin管理员组

文章数量:1794759

python下载url图片或文件

python下载url图片或文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
  • 一、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 = "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 = "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'}
总结

个人记录不会的操作,向百度学习。。。。

本文标签: 文件图片Pythonurl