批量下载对路网图片并生成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 常用代码技巧大收集
Feb 25 Javascript
javascript使用prototype完成单继承
Dec 24 Javascript
JavaScript中实现依赖注入的思路分享
Jan 15 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
JS中判断null的方法分析
Nov 21 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
简单实现js放大镜效果
Jul 24 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
使用Angular自定义字段校验指令的方法示例
Feb 01 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 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程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
js编写选项卡效果
2017/05/23 Javascript
vue-loader教程介绍
2017/06/14 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python多线程同步实例教程
2019/08/11 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
广告设计专业自荐信范文
2013/11/14 职场文书
活动志愿者自荐信
2014/01/27 职场文书
百日安全活动总结
2014/05/04 职场文书
九一八事变演讲稿
2014/09/05 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
基层工作经历证明
2015/06/19 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang