批量下载对路网图片并生成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 相关文章推荐
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
JQuery实现鼠标滑过显示导航下拉列表
Sep 12 Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
Jul 07 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 Javascript
jQuery中实现text()的方法
Apr 04 jQuery
vue中使用WX-JSSDK的两种方法(推荐)
Jan 18 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 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
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
以windows service方式运行Python程序的方法
2015/06/03 Python
django使用html模板减少代码代码解析
2017/12/12 Python
设置python3为默认python的方法
2018/10/31 Python
python list转置和前后反转的例子
2019/08/26 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
给国外客户的邀请函
2014/01/30 职场文书
高考备战决心书
2014/03/11 职场文书
园林系毕业生求职信
2014/06/23 职场文书
承诺书模板
2014/08/30 职场文书
2014年居委会工作总结
2014/12/09 职场文书
模范班主任事迹材料
2014/12/17 职场文书
出生公证书
2015/01/23 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技