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 下载文件-python爬虫之下载文件的方式总结以及程序实例相关推荐

  1. python爬虫下载-python爬虫之下载文件的方式总结以及程序实例

    python爬虫之下载文件的方式以及下载实例 目录 第一种方法:urlretrieve方法下载 第二种方法:request download 第三种方法:视频文件.大型文件下载 实战演示 第一种方法: ...

  2. 用python重复下载文件_python 爬虫 重复下载 二次请求

    C:\Python27\python.exe C:/Users/xuchunlin/PycharmProjects/A9_25/auction/test.py 正在请求的URL是: https://w ...

  3. python 百度贴吧爬虫(下载图片)

    业余时用python写的百度贴吧爬虫程序,算是对学习python程序得一个练习. 本程序可以针对给定的贴吧链接,把帖子楼主的发言或者图片爬取出来,目前主要功能为下载所有楼主发的图片.爬取楼主发言的功能 ...

  4. python 爬虫 音乐下载 歌手_python爬虫批量下载全民K歌音乐

    标签:爬虫 网址示例: https://node.kg.qq.com/personal?uid=639e9983222a338a 直接上源码: import requests import time ...

  5. 《脚本》Python在线百度文库爬虫(免下载券)

    百度文库,文字类型的资源(如txt, doc, pdf),是可以在前端源码分析获取到的,如果能按照规则合理的提取这些文字资源,就可以实现免下载券获取资源. 作者完成了百度文库的在线版爬虫,只需提供文库 ...

  6. 【python】wallpaperscraft壁纸爬虫及下载器实现

    成果展示 软件下载 https://ghgxj.lanzous.com/iRYi6jgf1ab 使用教程 目标站点 https://wallpaperscraft.com/ 注意事项 因为是国外的网站 ...

  7. python爬虫原理-python学习之python爬虫原理

    原标题:python学习之python爬虫原理 今天我们要向大家详细解说python爬虫原理,什么是python爬虫,python爬虫工作的基本流程是什么等内容,希望对这正在进行python爬虫学习的 ...

  8. python解析原理_python爬虫原理

    简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什么? ...

  9. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集的下载(基于python语言根据爬虫技术自动下载MNIST数据集)

    Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集的下载(基于python语言根据爬虫技术自动下载MNIST数据集) 目录 数据集下载的所有代码 1.主文件 mni ...

最新文章

  1. 非洲的风能和太阳能真是企业家无与伦比的商机?
  2. 爬虫之Selenium
  3. 关于Web前端面试的小技巧,千万不要错过!
  4. php页面设置密码,PHP页面输入密码才能访问加密代码
  5. 插件安装失败_贴片保险丝额定电流应用电路为什么会安装失败?
  6. 今天讲座的感悟--java
  7. AC日记——[NOI2006]最大获利 bzoj 1497
  8. 老生长谈的$.extend()方法
  9. Seay源代码审计系统2.1源码
  10. 基于linux的贪吃蛇游戏设计_基于Unreal4的战棋类游戏《棋行傀儡》的设计与实现...
  11. Django 修改时区时间
  12. 基于jsp的KTV管理系统mysql
  13. bm26 bm27 1
  14. Proteus与Keil联调 ARM STM32流水灯
  15. Arcgis中地理坐标系转投影坐标系(自定义地理坐标转换)
  16. Python地理位置信息库geopy的使用(一):基本使用
  17. 经典同态加密算法Paillier解读 - 原理、实现和应用
  18. 遇见Laravel Migrations的migrate与rollback
  19. logout命令详解
  20. PS某色背景改为透明

热门文章

  1. 2018 蓝桥杯省赛 B 组模拟赛(五)题 F题
  2. Vs 中关于项目中的某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
  3. python+freetype+opencv 图片中文(汉字)显示 详细图文教程和项目完整源代码
  4. 卷积神经网络CNN总结(转)
  5. 调教 游戏java_如何优雅的调教Java(eclipse篇)(三)安装插件的崩溃瞬间代号(2599)...
  6. c#事件的发布-订阅模型_NET Core 3 WPF MVVM框架 Prism系列之事件聚合器
  7. FFmpeg入门测试
  8. Android安装后没有完成和打开按钮
  9. linux下命令行操作快捷键及技巧
  10. MySQL数据丢失情况分析