微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量下载对路网图片并生成html的实现方法

对路使用ajax实现异步加载内容,在它的js代码中找到了相关代码

rush: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相关模块

rush:js;"> # -*- 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文件

rush:js;"> def create_html(alllist,name): html_head='duilu' html_end="" f=open("%s.html"%(name),"w") f.write(html_head) for x in range(len(alllist)): f.write('
%s/%s.gif"/>'%(name,str(x))) f.write('

%s

'%(alllist[x]['t'].encode('utf-8'))) f.write(html_end) f.close()

下载图片

rush:js;"> 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("../")

函数,用于调用上面那几个函数

rush:js;"> 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"

一个循环体,获取用户输入

rush:js;"> 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的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐