刚毕业找到工作,还没money给住的的地方连宽带(等发工资T.T),平时喜欢去对路上看看搞笑图片,于是便写了一个脚本来批量下载对路图片,然后在本地生产一个html文件,等下班后慢慢看,最终效果还不错,脚本使用python写的,源文件在此.

  对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码

type : 'POST',url : '/index.php/request/new_data2/' + times + '/'+locinfo[domn][0],dataType : 'json',

  返回的json字符串是一个被序列化的数组,数组中存放的是字典,其中要关注的是dict['t']以及dict['i'],dict['t']存放了图片的说明,dict['i']存放了图片的url.知道了这些后就可以开始python脚本了

  import相关模块

# -*- coding: utf-8 -*-
import urllib2 as url
import json
import sys
import os
from datetime import *

  (已经修复不能获取指定类型的bug,请求的url中最后一个数字代表类型)

  获取json:index是下载的第几页,type是tws(太猥琐) tr(太热) tgx(太搞笑) tml(太萌了) tht(太好听 tyy(太养眼) 之一

def get_json(index,type):list=["tr","tht","tml","tyy","tgx","tws"]seq=list.index(type)+1res=url.urlopen(r"http://%s.dui.lu/index.php/request/new_data2/%s/%s"%(type,str(index),str(seq)))if res.headers.has_key("content-encoding"):print "gzip"fileobj=StringIO.StringIO()fileobj.write(res.read())fileobj.seek(0)gzip_file=gzip.GzipFile(fileobj=fileobj)context=gzip_file.read()#context=unicode(context,"utf8")else:#context=unicode(res.read(),"utf8")context=res.read()res.close()list=json.loads(context)return list

  然后是创建html文件

def create_html(alllist,name):html_head='<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>duilu</title><body>'html_end="</body></html>"f=open("%s.html"%(name),"w")f.write(html_head)for x in range(len(alllist)):f.write('<div><img src="%s/%s.gif"/>'%(name,str(x)))f.write('<p>%s</p></div>'%(alllist[x]['t'].encode('utf-8')))      f.write(html_end)f.close()

  下载图片

def download(list,dirname,index=0):os.chdir(dirname)for dict in list:imgurl=dict['i']text= dict['t']print indexprint imgurlprint textres=url.urlopen(imgurl)img_type=".gif"content_type=res.headers["content-type"]if content_type=="image/jpeg":type=".jgp"filepath="%s"%(str(index)+img_type)f=open(filepath,"wb")f.write(res.read())f.close()res.close()index+=1os.chdir("../")

  主函数,用于调用上面那几个函数

def start(type,lenght):lenght=int(lenght)now=datetime.now()now=now.strftime("%m-%d %H.%M.%S")os.mkdir(type+now)alllist=[]for x in range(0,lenght):list=get_json(x,type)alllist.extend(list)create_html(alllist,type+now)download(alllist,type+now)print "\r\n\r\n==============OK==============\r\n\r\n"

  一个循环体,获取用户输入

while(True):print "输入tws(太猥琐) tr(太热) tgx(太搞笑) tml(太萌了) tht(太好听 tyy(太养眼) 之一\r\nexit:退出"type=raw_input()all_type=["tgx","tws","tyy","tr","tml","tht"]if type in all_type:print "键入下载页数:"lenght=raw_input()start(type,lenght)elif type=="exit":breakelse:print "\r\n输入有误\r\n"

ok完成了,脚本会在当前目录下生成一个以时间命名的html文件以及同名文件夹来存放图片.

测试了一下,下载100多张图片用了几分钟,所以呢我觉得不需要多线程来下载.

也可以稍稍修改下生成html的地方,变成分页显示,然后将网页拖进安卓手机里看也是不错的

用python就是那么简单!

转载于:https://www.cnblogs.com/fmnisme/archive/2012/08/17/2644709.html

批量下载对路网图片并生成html相关推荐

  1. js php 批量下载文件,批量下载对路网图片并生成html的实现方法

    对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码 type : 'POST', url : '/index.php/request/new_data2/' + times + '/'+ ...

  2. php ajax 下载图片路径,JavaScript_批量下载对路网图片并生成html的实现方法,对路使用ajax实现异步加载内容 - phpStudy...

    批量下载对路网图片并生成html的实现方法 对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码 type : 'POST', url : '/index.php/request/new_ ...

  3. Android进阶之路 - 批量下载、缓存图片、视频

    之前已经记录过,批量下载图片和缓存本地的方式,此篇主要记录批量下载图片.视频,同时缓存在本地的功能实现 关联篇 Android进阶之路 - 批量下载.缓存图片 Android进阶之路 - 批量下载.缓 ...

  4. Android进阶之路 - 批量下载、缓存图片

    在日常项目开发中,关于图片批量下载,数据缓存的相关功能比比皆是,这次也是去年在项目中需要在本地缓存商品数据,所以用到了批量下载的功能,特此记录 ~ 关联篇 Android进阶之路 - 批量下载.缓存图 ...

  5. web前端批量下载文件和图片探索

    1.图片,文件批量下载(不跨域的情况下) import JSZip from 'jszip'; import {saveAs} from 'file-saver'; import axios from ...

  6. 用python批量下载贴吧图片 附源代码

    环境:windows 7 64位:python2.7:IDE pycharm2016.1 功能: 批量下载百度贴吧某吧某页的所有帖子中的所有图片 使用方法: 1.安装python2.7,安装re模块, ...

  7. 怎样批量下载贴吧图片

    贴吧图片如何批量下载呢? 步骤1:在电脑上打开这个软件,在左上角的工具里找到贴吧图片批量下载 步骤2:将贴吧网址复制到上面去,若复制多个网址,可以一行一个 步骤3:设置下载范围,网址所在页或者指定页码 ...

  8. 图片批量下载软件-全网图片免费批量下载软件

    图片批量下载软件,今天给大家分享一款免费图片批量下载软件,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.批量下载任意网页上的图片,每个人都可以拥有各种高清图源.支持批量图 ...

  9. 前端批量下载文件、图片、打包成压缩包,JZip和file-saver

    一.安装JZip和file-saver cnpm install file-saver jszip --save 二.导入 import { saveAs } from 'file-saver' im ...

最新文章

  1. usaco Hamming Codes
  2. 64位Ubuntu上编译32位程序操作步骤
  3. java ordered list_关于并行处理:Java 8的forEachOrdered()和sequence()方法之间的区别?...
  4. jvm内存配置参数_性能测试连载 (23)jvm内存参数设置
  5. gin redis 链接不上_自然的风味,GIN 在杯中
  6. php cdi_教程:编写自己的CDI扩展
  7. 引用activity_允许其他应用启动您的 Activity
  8. Atitit uri url urn 的概念区别 与联系 目录 1.1. 概念图 uri包括url和urn。。Urn一般是相对路径。。。 1 1.2. 统一资源名称 (Uniform Resourc
  9. HTTP请求/响应原理
  10. php图片编辑组件幻灯片,修改织梦图片幻灯片样式
  11. O0 O1 O2 O3优化原理
  12. u盘启动pe一键装机的步骤教程,u盘如何安装系统
  13. 观点 | 以太坊:货币的互联网
  14. Excel技巧:合并单元格后分组排序
  15. CSS - 语法规则
  16. Jenkins配置定时任务
  17. 小技巧|CSS如何实现文字两端对齐
  18. Python将 Unicode 转换为 utf-8 格式
  19. shop php yii2,Yii2 开源商城 FecShop
  20. PhpStorm设置等号对齐

热门文章

  1. 怎么用计算机检测颜色的深浅,颜色的秘密:为何需要色彩分析仪测量颜色
  2. IOS开发之----资源汇总
  3. No.021<软考>《(高项)备考大全》【第06章】项目进度管理
  4. SpringBoot——错误处理机制 定制错误页面 (源码分析)
  5. oracle plug/unplug pdb
  6. 关于解决安装Ubuntu到移动硬盘后引导问题,不能在别人电脑上使用
  7. MySQL8.0的下载安装配置教程
  8. android 多线程下载文件大小不对的问题
  9. 射频功率放大器 简介
  10. 使用余弦相似度实现文本相似度检测