批量下载对路网图片并生成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 贪吃蛇实现代码
Nov 22 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
Jul 15 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
Mar 05 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
Aug 21 Javascript
js中获取jsp表单中radio类型的值简单实例
Aug 15 Javascript
前端框架Vue.js中Directive知识详解
Sep 12 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
js实现动态时钟
Mar 12 Javascript
一篇文章看懂JavaScript中的回调
Jan 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
PHP中for与foreach的区别分析
2011/03/09 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
学校重阳节活动总结
2015/03/24 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Vue的过滤器你真了解吗
2022/02/24 Vue.js