随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

python抓取网页中图片并保存到本地

复制代码
#-*-coding:utf-8-*- 

import os
import uuid
import urllib2
import cookielib

'''获取文件后缀名'''
def get_file_extension(file):  
    return os.path.splitext(file)[1]  

'''創建文件目录,并返回该目录'''
def mkdir(path):
    # 去除左右两边的空格
    path=path.strip()
    # 去除尾部 \符号
    path=path.rstrip("\\")

    if not os.path.exists(path):
        os.makedirs(path)
        
    return path

'''自动生成一个唯一的字符串,固定长度为36'''
def unique_str():
    return str(uuid.uuid1())

'''
抓取网页文件内容,保存到内存

@url 欲抓取文件 ,path+filename
'''
def get_file(url):
    try:
        cj=cookielib.LWPCookieJar()
        opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        urllib2.install_opener(opener)
        
        req=urllib2.Request(url)
        operate=opener.open(req)
        data=operate.read()
        return data
    except BaseException, e:
        print e
        return None
    
'''
保存文件到本地

@path  本地路径
@file_name 文件名
@data 文件内容
'''
def save_file(path, file_name, data):
    if data == None:
        return
    
    mkdir(path)
    if(not path.endswith("/")):
        path=path+"/"
    file=open(path+file_name, "wb")
    file.write(data)
    file.flush()
    file.close()
 

#获取文件后缀名
print get_file_extension("123.jpg");

#創建文件目录,并返回该目录
#print mkdir("d:/ljq")

#自动生成一个唯一的字符串,固定长度为36
print unique_str()

url="http://qlogo1.store.qq.com/qzone/416501600/416501600/100?0";
save_file("d:/ljq/", "123.jpg", get_file(url))
复制代码

 

 

posted on   Ruthless  阅读(34300)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2011-04-17 JAVA通过调用数据库函数调用存储过程
2011-04-17 JAVA调用增删改的存储过程
2011-04-17 JAVA调用数据库存储过程
2011-04-17 oracle函数调用存储过程
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示