python爬虫之下载文件的方式以及下载实例

目录

第一种方法:urlretrieve方法下载

第二种方法:request download

第三种方法:视频文件、大型文件下载

实战演示

第一种方法:urlretrieve方法下载

程序示例

import os
from urllib.request import urlretrieve
os.makedirs('./img/',exist_ok=True) #创建目录存放文件
image_url = "https://p0.ssl.qhimg.com/t01e890e06c93018fa8.jpg"
urlretrieve(image_url,'./img1/image1.png') #将什么文件存放到什么位置

  

补充知识

os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。
语法
makedirs()方法语法格式如下:
os.makedirs(path, mode=0o777)
参数
path -- 需要递归创建的目录。
mode -- 权限模式。
返回值
该方法没有返回值。

  

第二种方法:request download

程序示例

import requests
image_url='https://p0.ssl.qhimg.com/t01e890e06c93018fa8.jpg'
r = requests.get(image_url)
with open('./img1/image1.png','wb') as f:
f.write(r.content)

补充知识

with open的使用格式

with open(’文件名‘,‘读写方式’)as f:
f.read() #读取是整个文件
f.readline() #读取第一行
f.readlines() #读取每一行,可以结合for使用(参考我上述完整代码),记得都要带方法都要带括号,不然返回的是内存地址
f.close() #关闭文件 文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
f.write() #写入文件

  

第三种方法:视频文件、大型文件下载

可以设置每次存储文件的大小,所以可以下载大型文件,当然也可以下载小文件。

程序示例

import requests
image_url = 'https://p0.ssl.qhimg.com/t01e890e06c93018fa8.jpg'
r = requests.get(image_url,stream=True) #stream=True #开启时时续续的下载的方式
with open(filename, 'wb') as f:
for chunk in r,iter_content(chunk_size=32): #chunk_size #设置每次下载文件的大小
f.write(chunk) #每一次循环存储一次下载下来的内容

  

实战演示

下面一个简单的使用爬虫下载图片的程序

爬取的是一个旅游网站的地图

程序示例

import requests
import os
from bs4 import BeautifulSoup
from urllib.request import urlretrieve def main():
url = 'http://www.onegreen.net/maps/List/List_933.html'
os.makedirs('./img/',exist_ok=True) #创建目录存放文件
html = requests.get(url).text #获取网页html soup = BeautifulSoup(html,'lxml')
img_url = soup.find_all('img') #获取所有的img标签,我在这里只是演示下载,所有不做进一步的筛选
print(len(img_url))
for url in img_url:
ul = url['src'] #获取src属性
img = 'http://www.onegreen.net/' + ul #补全图片url
print(img)
urlretrieve(img , './img/%s' % ul.split('/')[-1]) #存储图片
if __name__ =='__main__':
main()

程序运行结果

python爬虫之下载文件的方式总结以及程序实例的更多相关文章

  1. python爬虫2——下载文件(中华网图片库下载)

    # -*- coding: utf-8 -*- import requests import re import sys reload(sys) sys.setdefaultencoding('utf ...

  2. python爬虫脚本下载YouTube视频

    python爬虫脚本下载YouTube视频 爬虫 python YouTube视频 工作环境: python 2.7.13 pip lxml, 安装 pip install lxml,主要用xpath ...

  3. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  4. Python爬虫之三种数据解析方式

    一.引入 二.回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需 ...

  5. Python接口自动化测试-下载文件

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : shenqiang ''' 注意:定义类的时候,内部方法之间的互调 步骤: 1.按照 ...

  6. python从FTP下载文件

    #!/usr/bin/python # -*- coding: utf-8 -*- """ FTP常用操作 """ from ftplib ...

  7. Python+Selenium学习--下载文件

    场景 webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中,下面以firefox及chrome为例 代码 Firefox下载 为了让Firefox浏览器能 ...

  8. windows上python上传下载文件到linux服务器指定路径【转】

    从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...

  9. Python 爬虫批量下载美剧 from 人人影视 HR-HDTV

    本人比較喜欢看美剧.尤其喜欢人人影视上HR-HDTV 的 1024 分辨率的高清双字美剧,这里写了一个脚本来批量获得指定美剧的全部 HR-HDTV 的 ed2k下载链接.并依照先后顺序写入到文本文件, ...

随机推荐

  1. jquery 学习(三) - 遍历操作

    HTML代码 <p>1111</p> <p>1111</p> <p>1111</p> <p>1111</p&g ...

  2. 2018-2019-2 网络对抗技术 20165320 Exp1 PC平台逆向破解

    学到的新知识总结 管道:符号为| 前一个进程的输出直接作为后一个进程的输入 输出重定向:符号为> 将内容定向输入到文件中 perl:一门解释性语言,不需要预编译,直接在命令行中使用.常与输出重定 ...

  3. C++学习7-面向对象编程基础(多态性与虚函数、 IO文件流操作)

    多态 多态性是指对不同类的对象发出相同的消息将返回不同的行为,消息主要是指类的成员函数的调用,不同的行为是指不同的实现: 函数重载 函数重载是多态性的一种简单形式,它是指允许在相同的作用域内,相同的函 ...

  4. R-CNN论文详解(转载)

    这几天在看<Rich feature hierarchies for accurate object detection and semantic segmentation >,觉得作者的 ...

  5. mono修改配置

    当前mono安装目录为:/home/mono,安装成功后修改配置需进入这个路径: cd /home/mono 1.修改TcpBinaryFrameManager.cs文件 cd /home/mono/ ...

  6. centos7使用haproxy1.7.5实现反向代理负载均衡实战

    使用haproxy实现反向代理负载均衡实战环境准备:两台虚拟机 # yum install -y gcc glibc gcc-c++ make screen tree lrzsz node1源码编译安 ...

  7. 配置mysql5.5主从复制、半同步复制、主主复制

    mysql主服务器 192.168.8.40 mysql从服务器 192.168.8.41 全新配置过程(主和从数据库都没有数据): 主从复制主服务器设置: 1.改server-id      2.启 ...

  8. 在Mac上安装GTK(go语言GUI)

    1.在终端输入:xcode-select --install 安装command line工具, 如果安装了Xcode, 就直接跳过该步骤 2. 在终端输入:ruby -e "$(curl ...

  9. RestTemplate -springwebclient

    1 使用jar版本 - spring-web-4.3.8.RELEASE.jar 场景:backend,post请求远端,header中加入accessToken,用于权限控制 HttpHeaders ...

  10. Python-bootstrap

    1 引入 如果想要用到BootStrap提供的js插件,那么还需要引入jQuery框架,因为BootStrap提供的js插件是依赖于jQuery的 <link type="text/c ...