批量下载对路网图片并生成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 相关文章推荐
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
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单件模式结合命令链模式使用说明
2008/09/07 PHP
php的memcached客户端memcached
2011/06/14 PHP
2014过年倒计时示例
2014/01/31 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
jquery tab标签页的制作
2010/05/10 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
上课迟到检讨书
2014/01/19 职场文书
小学生学习感言
2014/03/10 职场文书
投资意向书
2014/07/30 职场文书
统计学教授推荐信
2014/09/18 职场文书
2015毕业寄语大全
2015/02/26 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书