批量下载对路网图片并生成html
刚毕业找到工作,还没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相关推荐
- js php 批量下载文件,批量下载对路网图片并生成html的实现方法
对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码 type : 'POST', url : '/index.php/request/new_data2/' + times + '/'+ ...
- php ajax 下载图片路径,JavaScript_批量下载对路网图片并生成html的实现方法,对路使用ajax实现异步加载内容 - phpStudy...
批量下载对路网图片并生成html的实现方法 对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码 type : 'POST', url : '/index.php/request/new_ ...
- Android进阶之路 - 批量下载、缓存图片、视频
之前已经记录过,批量下载图片和缓存本地的方式,此篇主要记录批量下载图片.视频,同时缓存在本地的功能实现 关联篇 Android进阶之路 - 批量下载.缓存图片 Android进阶之路 - 批量下载.缓 ...
- Android进阶之路 - 批量下载、缓存图片
在日常项目开发中,关于图片批量下载,数据缓存的相关功能比比皆是,这次也是去年在项目中需要在本地缓存商品数据,所以用到了批量下载的功能,特此记录 ~ 关联篇 Android进阶之路 - 批量下载.缓存图 ...
- web前端批量下载文件和图片探索
1.图片,文件批量下载(不跨域的情况下) import JSZip from 'jszip'; import {saveAs} from 'file-saver'; import axios from ...
- 用python批量下载贴吧图片 附源代码
环境:windows 7 64位:python2.7:IDE pycharm2016.1 功能: 批量下载百度贴吧某吧某页的所有帖子中的所有图片 使用方法: 1.安装python2.7,安装re模块, ...
- 怎样批量下载贴吧图片
贴吧图片如何批量下载呢? 步骤1:在电脑上打开这个软件,在左上角的工具里找到贴吧图片批量下载 步骤2:将贴吧网址复制到上面去,若复制多个网址,可以一行一个 步骤3:设置下载范围,网址所在页或者指定页码 ...
- 图片批量下载软件-全网图片免费批量下载软件
图片批量下载软件,今天给大家分享一款免费图片批量下载软件,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.批量下载任意网页上的图片,每个人都可以拥有各种高清图源.支持批量图 ...
- 前端批量下载文件、图片、打包成压缩包,JZip和file-saver
一.安装JZip和file-saver cnpm install file-saver jszip --save 二.导入 import { saveAs } from 'file-saver' im ...
最新文章
- usaco Hamming Codes
- 64位Ubuntu上编译32位程序操作步骤
- java ordered list_关于并行处理:Java 8的forEachOrdered()和sequence()方法之间的区别?...
- jvm内存配置参数_性能测试连载 (23)jvm内存参数设置
- gin redis 链接不上_自然的风味,GIN 在杯中
- php cdi_教程:编写自己的CDI扩展
- 引用activity_允许其他应用启动您的 Activity
- Atitit uri url urn 的概念区别 与联系 目录 1.1. 概念图 uri包括url和urn。。Urn一般是相对路径。。。	1 1.2. 统一资源名称 (Uniform Resourc
- HTTP请求/响应原理
- php图片编辑组件幻灯片,修改织梦图片幻灯片样式
- O0 O1 O2 O3优化原理
- u盘启动pe一键装机的步骤教程,u盘如何安装系统
- 观点 | 以太坊:货币的互联网
- Excel技巧:合并单元格后分组排序
- CSS - 语法规则
- Jenkins配置定时任务
- 小技巧|CSS如何实现文字两端对齐
- Python将 Unicode 转换为 utf-8 格式
- shop php yii2,Yii2 开源商城 FecShop
- PhpStorm设置等号对齐