最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)從訂閱源下載圖片的方法

 更新時(shí)間:2015年03月11日 09:38:54   作者:saintatgod  
這篇文章主要介紹了Python實(shí)現(xiàn)從訂閱源下載圖片的方法,涉及Python采集的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)從訂閱源下載圖片的方法。分享給大家供大家參考。具體如下:

這段代碼是基于python 3.4實(shí)現(xiàn)的,和python2.X 比起來(lái)有了好多差別啊。
這是一個(gè)練習(xí),數(shù)據(jù)源來(lái)自網(wǎng)易訂閱。代碼如下:

復(fù)制代碼 代碼如下:
__author__ = 'Saint'
import os
import urllib.request
import json
from html.parser import HTMLParser
# 從獲取的網(wǎng)頁(yè)內(nèi)容篩選圖片的內(nèi)容
class MyHtmlParser(HTMLParser):
    links = []
    def handle_starttag(self, tag, attrs):
        if tag == "img":
            if len(attrs) == 0:
                pass
            else:
                for name, value in attrs:
                    if name == "src":
                        self.links.append(value)
class Down(object):
    # 總的目錄
    img_path = "E:/saint"
    # 下載目錄
    dir = ''
    # 采集源地址
    collect_links = ["http://dy.163.com/v2/media/articlelist/T1374483113516-1", "http://dy.163.com/v2/media/articlelist/T1420776257254-1", "http://dy.163.com/v2/media/articlelist/T1376641060407-1"]
    img_links = "http://dy.163.com/v2/article"
    def handleCollect(self):
        for collect_link in self.collect_links:
            notice = "開(kāi)始從[" + collect_link + "]采集圖片"
            print(notice)
            # 建立下載的目錄
            dir_name = collect_link.split("/")[-1]
            self.isDirExists(dir_name)
            dict = self.getListFromSubscribe(collect_link)
            if dict == False:
                print("數(shù)據(jù)采集失敗,是否繼續(xù)(y/n)")
                op = input();
                if op == "y":
                    os.system("cls")
                    pass
                elif op == "n":
                    print("停止采集")
                    break
                else:
                    os.system("cls")
                    print("非法輸入")
                    break
            else:
                for page in dict:
                    page_uri = self.img_links + "/" + page["tid"] + "/" + page["docid"]
                    self.getImgFromUri(page_uri)
                    print("是否繼續(xù)(y/n)")
                    new_op = input();
                    if new_op == "n":
                        os.system("cls")
                        print("采集完畢")
                        break
        print("OK")
    # 從訂閱源獲取目錄
    def getListFromSubscribe(self, uri):
        res = urllib.request.urlopen(uri)
        if res.code < 200 or res.code > 300:
            os.system("clear")
            return False
        else:
            result = res.read().decode("gbk") # 3.4版本的read()返回的是byte類型,需要decode()處理,選項(xiàng)是網(wǎng)頁(yè)編碼
            dict = json.loads(result)
            if dict['code'] != 1:
                print(dict['msg'])
                return False
            else:
                return dict['data']
    # 獲取本期訂閱的網(wǎng)頁(yè),并從網(wǎng)頁(yè)中提取出來(lái)需要的圖片
    def getImgFromUri(self, uri):
        html_code = urllib.request.urlopen(uri).read().decode("gbk")
        hp = MyHtmlParser()
        hp.feed(html_code)
        hp.close()
 
        for link in hp.links: # hp.links 是圖片的下載地址的列表
            self.writeToDisk(link)
    # 檢查文件目錄是否存在,如果不存在,則創(chuàng)建目錄
    def isDirExists(self, dir_name):
        self.dir = self.img_path + dir_name
        isExists = os.path.exists(self.dir)
        if not isExists:
            os.makedirs(self.dir)
            return True
        else:
            return True
    # 下載文件,并且寫(xiě)入磁盤(pán)
    def writeToDisk(self, url):
        os.chdir(self.dir)
        file = urllib.request.urlopen(url).read()
        file_name = url.split("/")[-1]
        open(file_name, "wb").write(file)
        return True
if __name__ == "__main__":
    down = Down()
    down.handleCollect()

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python+wxauto實(shí)現(xiàn)微信自動(dòng)化操作

    Python+wxauto實(shí)現(xiàn)微信自動(dòng)化操作

    在眾多自動(dòng)化工具中,Python的wxauto庫(kù)以其強(qiáng)大的功能和簡(jiǎn)單易用的特點(diǎn),為我們打開(kāi)了微信自動(dòng)化操作的大門(mén),下面我們就來(lái)看看它的具體操作吧
    2025-02-02
  • Python實(shí)現(xiàn)邊緣提取的示例代碼

    Python實(shí)現(xiàn)邊緣提取的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Python計(jì)算機(jī)視覺(jué)中如何實(shí)現(xiàn)邊緣提取,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-05-05
  • Python創(chuàng)建模塊及模塊導(dǎo)入的方法

    Python創(chuàng)建模塊及模塊導(dǎo)入的方法

    這篇文章主要介紹了Python創(chuàng)建模塊及模塊導(dǎo)入的方法,實(shí)例分析了模塊的定義、導(dǎo)入及模塊屬性的使用技巧,并附帶說(shuō)明了包的概念與用法,需要的朋友可以參考下
    2015-05-05
  • 使用Python實(shí)現(xiàn)企業(yè)微信的自動(dòng)打卡功能

    使用Python實(shí)現(xiàn)企業(yè)微信的自動(dòng)打卡功能

    下面就通過(guò)Python程序來(lái)實(shí)現(xiàn)自動(dòng)打卡,原理很簡(jiǎn)單,用Python設(shè)置定時(shí)任務(wù),然后通過(guò)adb操作手機(jī),完成打卡功能,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • 簡(jiǎn)單談?wù)凱ython中的反轉(zhuǎn)字符串問(wèn)題

    簡(jiǎn)單談?wù)凱ython中的反轉(zhuǎn)字符串問(wèn)題

    本文給大家總結(jié)了5種可以實(shí)現(xiàn)python中反轉(zhuǎn)字符串的方法,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-10-10
  • python函數(shù)遞歸調(diào)用的實(shí)現(xiàn)

    python函數(shù)遞歸調(diào)用的實(shí)現(xiàn)

    本文主要介紹了python函數(shù)遞歸調(diào)用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Python中的類型提示(Type Hints)總結(jié)

    Python中的類型提示(Type Hints)總結(jié)

    Python3.5 版本引入了類型提示(Type Hints),它允許開(kāi)發(fā)者在代碼中顯式地聲明變量、函數(shù)、方法等的類型信息,下面小編就來(lái)帶大家一起看看Python類型提示的初步使用吧
    2023-05-05
  • python實(shí)現(xiàn)文法左遞歸的消除方法

    python實(shí)現(xiàn)文法左遞歸的消除方法

    這篇文章主要介紹了python實(shí)現(xiàn)文法左遞歸的消除的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 完美解決Python2操作中文名文件亂碼的問(wèn)題

    完美解決Python2操作中文名文件亂碼的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決Python2操作中文名文件亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • python使用time、datetime返回工作日列表實(shí)例代碼

    python使用time、datetime返回工作日列表實(shí)例代碼

    這篇文章主要介紹了python使用time、datetime返回工作日列表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

高台县| 四川省| 独山县| 宜黄县| 双城市| 余江县| 宜州市| 夏河县| 台中市| 盐池县| 梅河口市| 平江县| 始兴县| 江西省| 旌德县| 铜山县| 高台县| 紫金县| 阜宁县| 任丘市| 赫章县| 舞钢市| 汪清县| 康定县| 公主岭市| 工布江达县| 莫力| 宝丰县| 贺兰县| 桐庐县| 石狮市| 成都市| 元江| 昭觉县| 慈溪市| 綦江县| 扶余县| 鹿邑县| 汉川市| 会东县| 华坪县|