批量下载对路网图片并生成html的实现方法


Posted in Javascript onJune 07, 2016

对路使用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(太养眼) 之一

然后是创建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 index
    print imgurl
    print text
    res=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+=1
  os.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":
    break
  else:
    print "\r\n输入有误\r\n"

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

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

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

用python就是那么简单!

以上这篇批量下载对路网图片并生成html的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
return false;和e.preventDefault();的区别
Jul 11 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Jan 21 Javascript
es6学习笔记之Async函数基本教程
May 11 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
微信小程序自定义对话框弹出和隐藏动画
Jul 19 Javascript
浅析Vue.js中v-bind v-model的使用和区别
Dec 04 Javascript
layUI实现前端分页和后端分页
Jul 27 Javascript
解决一个微信号同时支持多个环境网页授权问题
Aug 07 Javascript
JavaScript获取URL参数的方法分享
Apr 07 Javascript
javascript之Boolean类型对象
Jun 07 #Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 #Javascript
javascript之Array 数组对象详解
Jun 07 #Javascript
JavaScript语言精粹经典实例(整理篇)
Jun 07 #Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 #Javascript
javascript基础知识
Jun 07 #Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 #Javascript
You might like
PHP 八种基本的数据类型小结
2011/06/01 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
python3.5绘制随机漫步图
2018/08/27 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
python3实现表白神器
2019/04/09 Python
python实现各种插值法(数值分析)
2019/07/30 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
数学高效课堂实施方案
2014/03/29 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
2015年共青团工作总结
2015/05/15 职场文书
运动会广播稿100字
2015/08/19 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫