首页 > 其他 > 详细

爬取网上的图片

时间:2019-03-27 22:32:55      阅读:263      评论:0      收藏:0      [点我收藏+]
from urllib.request import urlopen
from urllib import request
import re
import requests


def open(url):
    """
    将网站内容转换成字符串
    :param url:
    :return: 字符串
    """
    u = urlopen(url).read().decode(gbk)  # 将网站打开,并将网页内的内容转换成gbk类型的字符串
    return u


def gaoqing(urlname, url):
    """
    找到高清图片的地址

    :param urlname: 文件的名称
    :param url: 图片的查看地址
    :return:
    """
    url = f"http://pic.netbian.com{url}"  # 将图片的地址和官网拼接成图片的查看图片的地址
    u = urlopen(url).read().decode(gbk)  # 将网站内容转换成字符串
    a = re.search(<img src="(?P<pic>.*?)" data-, u)  # 利用正则找出图片的具体地址
    path = http://pic.netbian.com + a.group(1)  # 拼接
    s = pic_file(urlname, path)  # 下载,图片


def pic_file(jpg_name, path):
    request.urlretrieve(path, f./图片存放/{jpg_name}.jpg)  # 下载图片,保存到./图片存放目录下
    return True


def com_index(str_path, num):
    cod = {}
    com = re.search(<ul class="clearfix">.*?</ul>, str_path, re.S)
    #  查找页面内的图片地址存放区域
    if num == 1:
        # 第一页
        com_url = re.compile(r<li><a href="(?P<url>.*?)" title="(?P<title>.*?)" target=, re.S)
        # 查找图片的查看地址

    elif num > 1:
        # 不是第一页时
        com_url = re.compile(r<li><a href="((?P<url>.*?))".*?alt="(?P<title>.*?)" /><b>,
                             # 查找图片的查看地址,和图片名称
                             re.S)
    com_url = com_url.finditer(com.group())  # 将查找到的图片查看地址和名称,利用finditer
    for i in com_url:
        cod[i.group(title)] = i.group(url)  # 将 写入到字典返回。
    return cod


for i in range(230, 1136):
    # 网站一共有1135页,
    cod = {}
    try:
        if i == 1:
            url = http://pic.netbian.com/index.html  # 首页地址
        elif i > 1:
            url = fhttp://pic.netbian.com/index_{i}.html  # 其他页的地址
        a = open(url)   # 获得网页内容的字符串
        cod = com_index(a, i) # 获得网页中图片的查看地址,和图片名称对应的字典
        for k, i in cod.items():
            gaoqing(k, i)     # 获得图片的具体地址,并下载 
    except:
        continue

 

爬取网上的图片

原文:https://www.cnblogs.com/mk-lovefreedom/p/10611078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!