通过python采集时 ,经常需要从html 中获取图片或文件的URL并下载到本地,这里列举最常用的三种模块下载的方法:urllib模块、urllib2模块、requests模块。具体代码如下:

import urllib

import urllib2

import requests

url = 'http://www.test.com/wp-content/uploads/2012/06/wxDbViewer.zip'

print "downloading with urllib"

urllib.urlretrieve(url, "code.zip")

print "downloading with urllib2"

f = urllib2.urlopen(url)

data = f.read()

with open("code2.zip", "wb") as code:

code.write(data)

print "downloading with requests"

r = requests.get(url)

with open("code3.zip", "wb") as code:

code.write(r.content)

看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成:

f = urllib2.urlopen(url)

with open("code2.zip", "wb") as code:

code.write(f.read())

上面的方法中,还可以设置timeout参数,避免采集一直阻塞。除上面的介绍外,还可以使用pycurl 模块进行下载文件。

import pycurl

import StringIO

##### init the env ###########

c = pycurl.Curl()

c.setopt(pycurl.COOKIEFILE, "cookie_file_name")#把cookie保存在该文件中

c.setopt(pycurl.COOKIEJAR, "cookie_file_name")

c.setopt(pycurl.FOLLOWLOCATION, 1) #允许跟踪来源

c.setopt(pycurl.MAXREDIRS, 5)

#设置代理 如果有需要请去掉注释,并设置合适的参数

#c.setopt(pycurl.PROXY, 'http://11.11.11.11:8080')

#c.setopt(pycurl.PROXYUSERPWD, 'aaa:aaa')

########### get the data && save to file ###########

head = ['Accept:*/*','User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0']

buf = StringIO.StringIO()

curl.setopt(pycurl.WRITEFUNCTION, buf.write)

curl.setopt(pycurl.URL, url)

curl.setopt(pycurl.HTTPHEADER, head)

curl.perform()

the_page =buf.getvalue()

buf.close()

f = open("./%s" % ("img_filename",), 'wb')

f.write(the_page)

f.close()

python 下载文件-Python下载文件的方法相关推荐

  1. python 网站文件下载-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  2. python电脑下载方法-python 获取机器snpython下载文件的几种常用方法

    python中下载文件常用的几个模块有urllib,urllib2,requests,方法也很简单,代码如下: 002pc.com从python 获取机器snpython下载文件的几种常用方法分析来看 ...

  3. python电脑上怎么下载-python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  4. python下载的库要放到哪里-Python下载url并保存文件的三种方法

    本节主要内容: 学习python下载Url并保存文件的方法. Python中通常是使用Http利用urllib或urllib2模块来下载url中的内容. 当然也可以利用ftplib从ftp站点下载文件 ...

  5. Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理

    Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...

  6. python urlretrieve_使用urllib库的urlretrieve()方法下载网络文件到本地的方法

    概述 见源码 源码 # !/usr/bin/env python # -*- coding:utf-8 -*- """ 图片(文件)下载,核心方法是 urllib.url ...

  7. python 下载文件-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  8. python 下载文件-Python实现HTTP协议下的文件下载方法总结

    本文介绍了几种常用的python下载文件的方法,具体使用到了htttplib2,urllib等包,希望对大家有帮忙. 1.简单文件下载 使用htttplib2,具体代码如下: h = httplib2 ...

  9. python 下载文件-python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块,此外Python还提供了另外一种方法requests. 下面来看看三种方法是如何来下载文 ...

  10. python批量下载文件-python使用selenium实现批量文件下载

    背景 实现需求:批量下载联想某型号的全部驱动程序. 一般在做网络爬虫的时候,都是保存网页信息为主,或者下载单个文件.当涉及到多文件批量下载的时候,由于下载所需时间不定,下载的文件名不定,所以有一定的困 ...

最新文章

  1. zabbix3.2自动发现批量监控redis端口状态
  2. CodeForces-734E Anton and Tree 树的直径
  3. 下列代码之后的结果为()?
  4. java cdi是什么意思_Java EE CDI的真正好处
  5. 动态调用Web Service
  6. java内存管理机制剖析(一)
  7. ubuntu安装后要做什么
  8. php7和php5对比
  9. 人体全身骨骼神经分布图,人体骨骼神经系统图片
  10. Slurm的前处理prolog和后处理epilog
  11. 802.11 与wifi
  12. sass详细知识点介绍(环境配置)
  13. VBA基础知识整理(字典,自定义函数)
  14. ESP32 HttpServer模式下 本地OTA 例程(基于ESP-IDF类似Arduino下OTAWebUpdater例程)
  15. box-shadow 设置单边、多边阴影
  16. 新版TCGA数据库学习:批量下载新版TCGA数据
  17. php 读取文件自身内容,与读取文件输出内容
  18. cmd启动MySQL服务显示服务名无效,MySQL服务无法启动 Java
  19. ROS2GO之慕课《机器人操作系统入门》配置与使用(2018-2019-2)
  20. Linux_Geany使用指南

热门文章

  1. SCI从入门到精髓(四)——SCI论文写作技巧
  2. mysql 垂直分表技术的实战演练,有实战代码。
  3. 推荐12个最好的 JavaScript 图形绘制库
  4. ASP.NET 网站管理工具“安全”选项卡为什么打不开?
  5. Bailian2800 POJ NOI0113-04 垂直直方图【打印图形】
  6. 点乘和叉乘及其物理意义(C++STL实现)
  7. 生活中的实验 —— 家庭电路
  8. Java 并发 —— volatile 关键字
  9. 冷知识 —— 地名的解释
  10. Python Tricks(二十一)—— 排列组合的计算