yhw-miracle

提取多媒体文件

痛点就是起点 writed in

本文为痛点就是起点原创文章,可以随意转载,但需注明出处。

利用 python 爬取多媒体文件,存储它们有两种方式,一是只存储 url 链接,二是将文件下载下来。存储文件链接可以将文件的链接信息存储到 json 文件或 csv 文件;下载文件需要用到 urllib 模块提供的 urlretrieve() 函数,urlretrieve() 函数可以将远程数据下载到本地。

urlretrieve(url,filename=None,reporthook=None,data=None,context=None)

参数 filename 是指存储的本地路径;reporthook 是一个回调函数,当连接到服务器以及传输完毕相应的数据块,会调用该回调函数,一般用于显示下载进度。

以爬取天堂网图片为例 http://www.ivsky.com/tupian/ziranfengguang/,下载图片的代码如下所示:

import urllib
from lxml import etree
import requests


def schedule(blocknum, blocksize, totalsize):
    per = 100.0 * blocknum * blocksize / totalsize
    if per > 100:
        per = 100
    print "当前下载进度: %d" % per


user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " \
             "Chrome/71.0.3578.98 Safari/537.36"
headers = {"User-Agent": user_agent}
req = requests.get("http://www.ivsky.com/tupian/ziranfengguang/", headers=headers)

html = etree.HTML(req.text)
img_urls = html.xpath(".//img/@src")
i = 0
for img_url in img_urls:
    urllib.urlretrieve(img_url, ".images/img"+str(i)+".jpg", schedule)
    i += 1

多媒体文件 下载
知识总结

欢迎关注,我们一起进行认知迭代!


痛点就是起点

© 2016 - 2020 基于 jekyll | Github Pags | iconfont By yhw-miracle