下载网易首页上所有的图片

需求及编程思路


###############################################

# 1.找到所有图片的url

# 2.下载图片

#下载网页首页,保存为一个文件

#从网易文件中的每一行查找图片地址,收集网址到一个列表中

#遍历文件查找文件地址

###############################################



#导入模块

import wget

import os

import re

#定义一个函数,参数为fname,匹配正则,编码不输入时使用默认的utf-8

def get_url(fname,patt,encoding=None):

    #定义一个空列表

    result=[]

    #对正则表达式进行编译

    cpatt=re.compile(patt)

    #从网易文件中的每一行查找图片地址,收集网址到一个列表中

    with open(fname,encoding=encoding)as fobj:

        #遍历文件查找文件地址

        for line in fobj:

            m=cpatt.search(line)

            #找到一条就追加进列表

            if m:

                result.append(m.group())

    return result

if __name__ == '__main__':

    img_dir='/tmp/163'

    fname163='/tmp/163/163.html'

    url163='http://www.163.com'

    #如果不存在保存图片的目录,则创建

    if not os.path.exists(img_dir):

        os.mkdir(img_dir)

    #如果网易首页文件不存在,则下载

    if not os.path.exists(fname163):

        wget.download(url163,fname163)

    #取出网易首页中所有的图片地址

    img_patt='(http|https)://[-\w/.]+\.(jpg|png|jpeg|gif)'

    #网易网页使用的编码是gbk,不是utf8

    img_list=get_url(fname163,img_patt,'gbk')

    #print(img_list)

    #下载图片,把列表中的每一个图片地址进行下载

    for url in img_list:

        wget.download(url,img_dir)


运行结果展示

ls /tmp/163/

photo%2F0001%2F2019-11-13%2FETS06FBV56NT0001NOS (1).jpg

photo%2F0001%2F2019-11-13%2FETS06FBV56NT0001NOS.jpg

photo%2F0001%2F2019-11-13%2FETS0I0JD56NT0001NOS (1).jpg

photo%2F0001%2F2019-11-13%2FETS0I0JD56NT0001NOS.jpg

qingsongyike (1).jpg

qingsongyike.jpg

renjian (1).jpg

renjian.jpg

shentimima (1).jpg

shentimima.jpg

shudu (1).jpg

shudu.jpg

space (1).gif

查看图片

eog /tmp/kanke.jpg

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容