资源简介
此源码直接可以运行在自己的软件里面,爬取付费的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‘)
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论