批量下載對路網(wǎng)圖片并生成html的實現(xiàn)方法
對路使用ajax實現(xiàn)異步加載內(nèi)容,在它的js代碼中找到了相關(guān)代碼
type : 'POST', url : '/index.php/request/new_data2/' + times + '/'+locinfo[domn][0], dataType : 'json',
返回的json字符串是一個被序列化的數(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)修復不能獲取指定類型的bug,請求的url中最后一個數(shù)字代表類型)
獲取json:index是下載的第幾頁,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)用上面那幾個函數(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"
一個循環(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 "鍵入下載頁數(shù):" lenght=raw_input() start(type,lenght) elif type=="exit": break else: print "\r\n輸入有誤\r\n"
ok完成了,腳本會在當前目錄下生成一個以時間命名的html文件以及同名文件夾來存放圖片。
測試了一下,下載100多張圖片用了幾分鐘,所以呢我覺得不需要多線程來下載。
也可以稍稍修改下生成html的地方,變成分頁顯示,然后將網(wǎng)頁拖進安卓手機里看也是不錯的
用python就是那么簡單!
以上這篇批量下載對路網(wǎng)圖片并生成html的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
js中使用replace方法完成某個字符的轉(zhuǎn)換
這篇文章主要介紹了js中使用replace方法完成某個字符的轉(zhuǎn)換,比較實用,需要的朋友可以參考下2014-08-08如何用JS實現(xiàn)簡單的數(shù)據(jù)監(jiān)聽
這篇文章主要介紹了如何用JS實現(xiàn)簡單的數(shù)據(jù)監(jiān)聽,對數(shù)據(jù)監(jiān)聽感興趣的同學,可以參考一下2021-05-05如何基于JS實現(xiàn)Ajax并發(fā)請求的控制詳解
通常為了減少頁面加載時間,先把核心內(nèi)容顯示處理,頁面加載完成后再發(fā)送ajax請求獲取其他數(shù)據(jù),這時就可能產(chǎn)生多個ajax請求,為了用戶體驗,最好是發(fā)送并行請求,這篇文章主要給大家介紹了關(guān)于如何基于JS實現(xiàn)Ajax并發(fā)請求控制的相關(guān)文章,需要的朋友可以參考下2021-08-08JavaScript實現(xiàn)網(wǎng)頁版的五子棋游戲
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)網(wǎng)頁版的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05layerui代碼控制tab選項卡,添加,關(guān)閉的實例
今天小編就為大家分享一篇layerui代碼控制tab選項卡,添加,關(guān)閉的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09