• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python实现从订阅源下载图片的方法

Python实现从订阅源下载图片的方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python源代码下载,python源代码,python小游戏源代码,python爬虫源代码,python游戏源代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了Python实现从订阅源下载图片的方法。分享给大家供大家参考。具体如下:

这段代码是基于python 3.4实现的,和python2.X 比起来有了好多差别啊。
这是一个练习,数据源来自网易订阅。代码如下:
import os
import urllib.request
import json
from html.parser import HTMLParser
# 从获取的网页内容筛选图片的内容
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 = "开始从[" + collect_link + "]采集图片"
            print(notice)
            # 建立下载的目录
            dir_name = collect_link.split("/")[-1]
            self.isDirExists(dir_name)
            dict = self.getListFromSubscribe(collect_link)
            if dict == False:
                print("数据采集失败,是否继续(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("是否继续(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()处理,选项是网页编码
            dict = json.loads(result)
            if dict['code'] != 1:
                print(dict['msg'])
                return False
            else:
                return dict['data']
    # 获取本期订阅的网页,并从网页中提取出来需要的图片
    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)
    # 检查文件目录是否存在,如果不存在,则创建目录
  &n

您可能想查找下面的文章:

  • python利用不到一百行代码实现一个小siri
  • 批处理与python代码混合编程的方法
  • Python实现模拟时钟代码推荐
  • 分析并输出Python代码依赖的库的实现代码
  • 让Python代码更快运行的5种方法
  • python实用代码片段收集贴
  • python 远程统计文件代码分享
  • 使用70行Python代码实现一个递归下降解析器的教程
  • 仅用50行Python代码实现一个简单的代理服务器
  • 仅用50行Python代码实现一个简单的代理服务器

相关文章

  • Python中实现对list做减法操作介绍
  • 用于统计项目中代码总行数的Python脚本分享
  • Windows下PyMongo下载及安装教程
  • Python抓取Discuz!用户名脚本代码
  • python使用rsa加密算法模块模拟新浪微博登录
  • python根据经纬度计算距离示例
  • 删除目录下相同文件的python代码(逐级优化)
  • 浅析python 内置字符串处理函数的使用方法
  • python求pi的方法
  • python网络编程学习笔记(五):socket的一些补充

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python MySQLdb模块连接操作mysql数据库实例
    • python基于BeautifulSoup实现抓取网页指定内容的方法
    • python中map、any、all函数用法分析
    • Python中字典创建、遍历、添加等实用操作技巧合集
    • Python实现多行注释的另类方法
    • python算法学习之计数排序实例
    • python动态性强类型用法实例
    • python用reduce和map把字符串转为数字的方法
    • 对于Python的Django框架使用的一些实用建议
    • 使用Python制作获取网站目录的图形化程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有