Python 入门爬取图片 1.0

最近学习 python 爬虫,算是刚刚踏入门…查阅各种资料后终于可以写出一个非常简单的爬虫了 ♥

实现一个简单的爬虫,爬取百度贴吧图片

#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import requests
import re
import time

# 图片保存路径
SAVE_PATH = "./imgs/"

# 根据url获取网页html内容
def getHtmlContent(url):
    page = requests.get(url)
    page.encoding = "UTF-8"
    return page.text

# 从html中解析出所有jpg图片的url
def getJPGs(html):
    # 解析jpg图片url的正则
    jpgReg = re.compile(r'<img class="BDE_Image" src="(.+?\.jpg)"')
    # 解析出jpg的url列表
    jpgs = re.findall(jpgReg,html)
    return jpgs

def load_img(imgurl, file):
    '''下载单张图片到制定的文件夹下'''
    name = imgurl.split('/')[-1]
    file = "{}{}".format(file,name)
    item = requests.get(imgurl).content
    with open(file,'wb') as f:
        f.write(item)
 
# 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls):
    # 判断路径是否存在
    if issetDir(SAVE_PATH) != True:
        print("图片保存文件夹创建失败")
        exit()
    path = SAVE_PATH
    # 数量统计
    count = 1
    for url in imgUrls:
        load_img(url, path)
        # downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
        print('下载完成第{0}张图片'.format(count))
        count += 1

# 目录不存在则创建
def issetDir(path):
    import os
    path=path.strip()
    # 去除尾部 \ 符号
    path=path.rstrip("\\")
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        os.makedirs(path) 
        return True
    else:
        return True
# 封装:从百度贴吧网页下载图片
def download(url):
    # 记录执行时间
    start_t = time.time()
    html = getHtmlContent(url)
    jpgs = getJPGs(html)
    batchDownloadJPGs(jpgs)
    use_time = (time.time() - start_t)
    print("单进程需要{} 秒".format(use_time))
def main():
    url = 'http://tieba.baidu.com/p/2256306796'
    download(url)
     
if __name__ == '__main__':
    main()

  1. getHtmlContent 使用 requests 模块读取链接内容

  2. getJPGs 使用正则解析出所有jpg图片url

  3. batchDownloadJPGs 将正则匹配的所有图片下载

  4. issetDir 检查图保存路径是否存在,不存在则创建

    原文作者:python入门
    原文地址: https://my.oschina.net/18y/blog/1844150
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞