• 大小: 6KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-05-15
  • 语言: Python
  • 标签: python  

资源简介

此源码直接可以运行在自己的软件里面,爬取付费的4K高清图片,可移植,有详细的讲解和注释,适合爬虫小白进行进阶学习。

资源截图

代码片段和文件信息

# -*- coding :  utf-8 -*-
# @Time      :  2020/8/8
# @author    :  王小王
# @Software  :  PyCharm
# @CSDN      :  https://blog.csdn.net/weixin_47723732

import requests
from PIL import Image
from lxml import etree
from multiprocessing.pool import Pool  # 多线程
import os
import time


# 在使用PIL
# image处理图像要获取高质量的关键地方是下面两点:
# 处理时要用
# ANTIALIAS;
# 保存时是要设置
# quality;
#
# 在python
# ide
# 可以这样处理:
#
# im.resize(box Image.ANTIALIAS)  # 抗据此
# im.save(path ‘JPEG‘ quality=95)  # 图片质量大小


def get_groups(url headers):  # 获得重要信息
    “““根据传入的最初网址,获得每个专栏的网址和标题“““
    r = requests.get(url headers=headers)
    r.encoding = r.apparent_encoding  # 转换编码
    if r.status_code == 200:  # 如果请求成功,就执行下面的操作
        html = etree.HTML(r.text)
        html = etree.tostring(html)
        html = etree.fromstring(html)
        url_list = html.xpath(r“//div[@class=‘classify clearfix‘]//a/@href“)  # 获得网页分组的url
        name = html.xpath(r“//div[@class=‘classify clearfix‘]//a/text()“)  # 获得网页分组的标题

    else:
        print(‘请求错误!‘)
    return name url_list  # 把分组标题和分组网址回溯


def begin_down(title url headers):  # 下载选择
    print(‘渗透VIP方式下载高清4K图片‘.center(30 ‘-‘))
    for i j in enumerate(title):
        print(i ‘\t\t\t\t\t‘ j)
    inp = int(input(‘输入下载选项:‘))
    # print(title[inp] url[inp])
    # get_image_1st(title[inp] url[inp] headers)  # 调用第一页的网址进行下载
    get_image(title[inp] url[inp] headers)  # 下载剩下的所有页


def image_down(title page_url headers):  # 下载图片
    if not os.path.exists(title + ‘//‘):
        os.mkdir(title + ‘//‘)
        os.chdir(title + ‘//‘)
    else:
        os.chdir(title + ‘//‘)
    for i j in enumerate(page_url):  # 遍历第一页的图表列表
        r = requests.get(j headers=headers)  # 请求这个图片网址
        if r.status_code == 200:
            r.encoding = r.apparent_encoding  # 修改编码
            html = etree.HTML(r.text)
            html = etree.tostring(html)
            html = etree.fromstring(html)  # 以上搭建xpath对象
            url = html.xpath(r‘//a[@id=“img“]/img/@src‘)
            name = html.xpath(r‘//a[@id=“img“]/img/@title‘)
            rr = requests.get(‘http://pic.netbian.com‘ + ‘‘.join(url) headers=headers)
            if rr.status_code == 200:  # 请求下载图片网址
                rr.encoding = rr.apparent_encoding  # 修改编码
                #  判断有无
                if os.path.exists(‘‘.join(name) + ‘.png‘):
                    continue
                else:
                    with open(‘‘.join(name) + ‘.png‘ ‘wb‘) as fw:
                        fw.write(rr.content)
                    img = Image.open(‘‘.join(name) + ‘.png‘)
                    

评论

共有 条评论