码迷,mamicode.com
首页 > 编程语言 > 详细

【Python3 爬虫】04_urllib.request.urlretrieve

时间:2018-03-24 23:56:06      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:report   pytho   import   保存   hook   方法   odi   pre   top   

urllib模块提供的urlretrieve()函数,urlretrieve()方法直接将远程的数据下载到本地

urllib语法

技术分享图片

参数url:传入的网址,网址必须得是个字符串

参数filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)

参数reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。

参数data:指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。

下面整个例子是将hao6v的页面抓取到本地

技术分享图片

# -*- coding:UTF-8 -*-

from urllib import request



"""
urlretrieve参数说明:
1.传入网址,网址的类型一定是字符串

2.传入的,本地的网页保存路径+文件名

3.一个函数的调用,我们可以随便定义这个函数,但是必须得有3个参数
    ①到目前为此传递的数据块数量
    ②是每个数据块的大小,单位是byte,字节
    ③远程文件的大小
"""

def callback(a1,a2,a3):

    """
        @a1:目前为此传递的数据块数量
        @a2:每个数据块的大小,单位是byte,字节
        @a3:远程文件的大小
    """
    download_pg = 100.0*a1*a2/a3
    if download_pg > 100:
        download_pg = 100
    
    print("%.2f%%" %download_pg,)

url = "http://www.hao6v.com/"
local = "C:\\Users\\Administrator\\Desktop\\hellobi.html"
request.urlretrieve(url,local,callback)
技术分享图片

从上图我们可以看出,我们已经把网页成功爬取到本地,在本地桌面可以看到该页面,使用浏览器打开以后跟原页面一模一样(如果有CSS,则页面效果存在差异)

技术分享图片

【Python3 爬虫】04_urllib.request.urlretrieve

标签:report   pytho   import   保存   hook   方法   odi   pre   top   

原文地址:https://www.cnblogs.com/OliverQin/p/8641700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!