批量下载对路网图片并生成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 相关文章推荐
兼容ie、firefox的图片自动缩放的css跟js代码分享
Jan 21 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
js中创建对象的几种方式示例介绍
Jan 26 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
Aug 06 Javascript
Angular路由简单学习
Dec 26 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
js取0-9随机取4个数不重复的数字代码实例
Mar 27 Javascript
vue路由跳转传参数的方法
May 06 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python中replace方法实例分析
2014/08/20 Python
浅析python中的分片与截断序列
2016/08/09 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
基于Python实现粒子滤波效果
2020/12/01 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
大学生毕业的自我评价分享
2014/01/02 职场文书
法律进机关实施方案
2014/03/12 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
标准单位租车协议书
2014/09/23 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
交通事故起诉书
2015/05/19 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书