批量下載對(duì)路網(wǎng)圖片并生成html的實(shí)現(xiàn)方法
對(duì)路使用ajax實(shí)現(xiàn)異步加載內(nèi)容,在它的js代碼中找到了相關(guān)代碼
type : 'POST',
url : '/index.php/request/new_data2/' + times + '/'+locinfo[domn][0],
dataType : 'json',
返回的json字符串是一個(gè)被序列化的數(shù)組,數(shù)組中存放的是字典,其中要關(guān)注的是dict['t']以及dict['i'],dict['t']存放了圖片的說明,dict['i']存放了圖片的url.知道了這些后就可以開始python腳本了
import相關(guān)模塊
# -*- coding: utf-8 -*- import urllib2 as url import json import sys import os from datetime import *
(已經(jīng)修復(fù)不能獲取指定類型的bug,請(qǐng)求的url中最后一個(gè)數(shù)字代表類型)
獲取json:index是下載的第幾頁(yè),type是tws(太猥瑣) tr(太熱) tgx(太搞笑) tml(太萌了) tht(太好聽 tyy(太養(yǎng)眼) 之一
然后是創(chuàng)建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("../")
主函數(shù),用于調(diào)用上面那幾個(gè)函數(shù)
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"
一個(gè)循環(huán)體,獲取用戶輸入
while(True):
print "輸入tws(太猥瑣) tr(太熱) tgx(太搞笑) tml(太萌了) tht(太好聽 tyy(太養(yǎng)眼) 之一\r\nexit:退出"
type=raw_input()
all_type=["tgx","tws","tyy","tr","tml","tht"]
if type in all_type:
print "鍵入下載頁(yè)數(shù):"
lenght=raw_input()
start(type,lenght)
elif type=="exit":
break
else:
print "\r\n輸入有誤\r\n"
ok完成了,腳本會(huì)在當(dāng)前目錄下生成一個(gè)以時(shí)間命名的html文件以及同名文件夾來(lái)存放圖片。
測(cè)試了一下,下載100多張圖片用了幾分鐘,所以呢我覺得不需要多線程來(lái)下載。
也可以稍稍修改下生成html的地方,變成分頁(yè)顯示,然后將網(wǎng)頁(yè)拖進(jìn)安卓手機(jī)里看也是不錯(cuò)的
用python就是那么簡(jiǎn)單!
以上這篇批量下載對(duì)路網(wǎng)圖片并生成html的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)簡(jiǎn)單Tab欄切換案例
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)單Tab欄切換案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
JS獲取url參數(shù),JS發(fā)送json格式的POST請(qǐng)求方法
下面小編就為大家分享一篇JS獲取url參數(shù),JS發(fā)送json格式的POST請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-03-03
javascript實(shí)現(xiàn)頁(yè)面刷新時(shí)自動(dòng)清空表單并選中的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)頁(yè)面刷新時(shí)自動(dòng)清空表單并選中的方法,涉及javascript中reset與focus方法的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根【遞歸原理】
這篇文章主要介紹了javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根,簡(jiǎn)單說明了牛頓迭代法的原理,并結(jié)合實(shí)例分析了javascript基于遞歸的數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
JS實(shí)現(xiàn)單行文字不間斷向上滾動(dòng)的方法
這篇文章主要介紹了JS實(shí)現(xiàn)單行文字不間斷向上滾動(dòng)的方法,以實(shí)例形式較為詳細(xì)的分析了文字滾動(dòng)效果實(shí)現(xiàn)的原理與技巧,需要的朋友可以參考下2015-01-01

