批量下载对路网图片并生成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 相关文章推荐
16个最流行的JavaScript框架[推荐]
May 29 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
Feb 17 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
Jun 28 Javascript
Jquery组件easyUi实现选项卡切换示例
Aug 23 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
微信小程序自定义音乐进度条的实例代码
Aug 28 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
Dec 21 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
Vue Element-ui表单校验规则实现
Jul 09 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算开始时间到过期时间的相隔的天数
2011/01/12 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
详解Python的单元测试
2015/04/28 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
pandas中去除指定字符的实例
2018/05/18 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python3内置模块random随机方法小结
2019/07/13 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
市场营销专业个人求职信范文
2013/12/14 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
学生会招新宣传语
2015/07/13 职场文书
感恩主题班会教案
2015/08/12 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android