批量下载对路网图片并生成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 相关文章推荐
关于跨站脚本攻击问题
Dec 22 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
使用Node.js处理前端代码文件的编码问题
Feb 16 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
Dec 08 Javascript
SpringMVC+bootstrap table实例详解
Jun 02 Javascript
JavaScript之面向对象_动力节点Java学院整理
Jun 29 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
微信小程序登陆注册功能的实现代码
Dec 10 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
Content-type 的说明
2006/10/09 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
python 开发的三种运行模式详细介绍
2017/01/18 Python
python 读写中文json的实例详解
2017/10/29 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
浅谈Python type的使用
2019/11/19 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
python实现3D地图可视化
2020/03/25 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
HTML5 weui使用笔记
2019/11/21 HTML / CSS
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
医生自荐信
2013/10/11 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python