批量下载对路网图片并生成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 相关文章推荐
枚举JavaScript对象的函数
Dec 22 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
一个XML格式数据转换为图表的例子
Feb 09 Javascript
JavaScript 设计模式 安全沙箱模式
Sep 24 Javascript
Firefox中beforeunload事件的实现缺陷浅析
May 03 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
如何用JavaScript实现动态修改CSS样式表
May 20 Javascript
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
使用next.js开发网址缩短服务的方法
Jun 17 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 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通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
让python在hadoop上跑起来
2016/01/27 Python
Python松散正则表达式用法分析
2016/04/29 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
python支付宝支付示例详解
2019/08/22 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Python页面加载的等待方式总结
2021/02/28 Python
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
制衣厂各岗位职责
2013/12/02 职场文书
四年大学生活的个人自我评价
2013/12/11 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript