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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/20 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python加lxml实现图片解析下载功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、下載網頁: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

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import OpenHtml from urllib.parse import quote import lxml.htmlclass Imager:def Analysis(self,url):# 解決中文搜索問題 對于:?=不進行轉義root_url = quote(url, safe='/:?=')openhtml=OpenHtml.HtmlLoader()html = openhtml.Open(url)# 將HTML解析為統一的格式tree = lxml.html.fromstring(html)# 通過lxml的xpath獲取src屬性的值,返回一個列表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):'''回調函數可以用來顯示進度@a:已經下載的數據塊個數@b:數據塊的大小@c:遠程文件的大小'''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、啟動文件,即測試文件main.py

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #!/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,將圖片保存在當前目錄下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()函數。urlretrieve()方法直接將遠程數據下載到本地。

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

  • 參數filename指定了保存本地路徑(如果參數未指定,urllib會生成一個臨時文件保存數據。)
  • 參數reporthook是一個回調函數,當連接上服務器、以及相應的數據塊傳輸完畢時會觸發該回調,我們可以利用這個回調函數來顯示當前的下載進度。
  • 參數data指post導服務器的數據,該方法返回一個包含兩個元素的(filename, headers) 元組,filename 表示保存到本地的路徑,header表示服務器的響應頭

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。