日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python加lxml实现图片解析下载功能

發(fā)布時(shí)間:2025/3/20 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python加lxml实现图片解析下载功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、下載網(wǎng)頁(yè):OpenHtml.py

import urllib.request from urllib.parse import quoteclass HtmlLoader(object):def Open(self, chaper_url):if chaper_url is None:return Noneheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}req = urllib.request.Request(url=chaper_url, headers=headers)response = urllib.request.urlopen(req)if response.getcode() != 200:return Nonereturn response.read()

2、解析圖片:ImageAnalysis.py

''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' import OpenHtml from urllib.parse import quote import lxml.htmlclass Imager:def Analysis(self,url):# 解決中文搜索問(wèn)題 對(duì)于:?=不進(jìn)行轉(zhuǎn)義root_url = quote(url, safe='/:?=')openhtml=OpenHtml.HtmlLoader()html = openhtml.Open(url)# 將HTML解析為統(tǒng)一的格式tree = lxml.html.fromstring(html)# 通過(guò)lxml的xpath獲取src屬性的值,返回一個(gè)列表img = tree.xpath('//img[@class="BDE_Image"]/@src')return img

3、下載圖片:LoadFile.py

import urllib.request as reclass Loader:def callback(self,a,b,c):'''回調(diào)函數(shù)可以用來(lái)顯示進(jìn)度@a:已經(jīng)下載的數(shù)據(jù)塊個(gè)數(shù)@b:數(shù)據(jù)塊的大小@c:遠(yuǎn)程文件的大小'''per=100.0*a*b/cif per>100:per=100print('%.2f%%' % per)def Down(self, url, filename):# dir = os.path.abspath('.')# work_path = os.path.join(dir, 'baidu.html')re.urlretrieve(url, filename, self.callback)

4、啟動(dòng)文件,即測(cè)試文件main.py

''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' #!/usr/bin/env python # coding=utf-8import ImageAnalysis import LoadFiledef downimge():# url = "http://www.btany.com/search/桃谷繪里香-first-asc-1"url = "https://tieba.baidu.com/p/5475267611"imganalysis=ImageAnalysis.Imager()img=imganalysis.Analysis(url)# 迭代列表img,將圖片保存在當(dāng)前目錄下x=0download=LoadFile.Loader()for i in img:download.Down(i, 'C:\\Users\\luffy\\Desktop\\img\\%s.jpg' % x)x += 1if __name__ == '__main__':downimge()# download = LoadFile.Loader()# download.Down('http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2', 'C:\\Users\\luffy\\Desktop\\img\\Python-2.7.5.tar.bz2')

urllib模塊提供的urlretrieve()函數(shù)。urlretrieve()方法直接將遠(yuǎn)程數(shù)據(jù)下載到本地。

urlretrieve(url, filename=None, reporthook=None, data=None)

  • 參數(shù)filename指定了保存本地路徑(如果參數(shù)未指定,urllib會(huì)生成一個(gè)臨時(shí)文件保存數(shù)據(jù)。)
  • 參數(shù)reporthook是一個(gè)回調(diào)函數(shù),當(dāng)連接上服務(wù)器、以及相應(yīng)的數(shù)據(jù)塊傳輸完畢時(shí)會(huì)觸發(fā)該回調(diào),我們可以利用這個(gè)回調(diào)函數(shù)來(lái)顯示當(dāng)前的下載進(jìn)度。
  • 參數(shù)data指post導(dǎo)服務(wù)器的數(shù)據(jù),該方法返回一個(gè)包含兩個(gè)元素的(filename, headers) 元組,filename 表示保存到本地的路徑,header表示服務(wù)器的響應(yīng)頭

總結(jié)

以上是生活随笔為你收集整理的Python加lxml实现图片解析下载功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。