当前对版权保护日益严格,因此在此说明爬取的图像仅做研究和个人使用,禁止用作商用目的。
该爬虫方法可应用到其它允许爬虫的网址

查看网页源代码寻找高清图像链接

以关键词明星为例,搜索后的网址为 https://www.vcg.com/creative/search?phrase=明星
在chrome下ctrl+u或者右键查看源代码,搜索.jpp会找到很多图片的网址,经查验,最高清的图像链接格式为:“url800”:“图像网址”,即在源代码的最后,见下图.

程序示例

Step 1 导入必要Python包

from urllib import request
import os
import re #正则表达式库

Step 2 定义保存路径函数

#输入类别名称,子类别名称,文件名,输出图片路径
def get_path(classname,subclassname,filename):#获取当前工作路径cwd = os.getcwd()#获取图像的保存目录dir_path = cwd+'/vcg_test/' + classname +'/'+ subclassname#目录是否存在,不存在则创建目录if os.path.exists(dir_path):passelse:os.makedirs(dir_path)#获取图像的绝对路径file_path = dir_path +'/'+ filenamereturn file_path

Step 3 按照关键词爬取图片

假设我们希望爬取“明星”和“动漫人物”两种关键词下的图片,我们希望爬取的图片中仅有一个人方便使用,则代码如下:

classnames = ['super_star','cartoon'] #假设我们分类是明星和动漫人物
keypoints = ['%E6%98%8E%E6%98%9F','%E5%8A%A8%E6%BC%AB%E4%BA%BA%E7%89%A9'] #关键字对应
gender_file_path = ['male','female'] #对于人的分类检索可以按性别筛选
all_page = 35 #想要下载的总页数,其中每页与检索相同,为100张
for class_index, phrase in enumerate(classnames):sum_all_num = 0if class_index >= 0  : #从某一类断开则选择该类为起始点 # if class_index == 1  : #例如下载动漫人物时被服务器Kill掉可以改为该行继续下载 for gender_index,gender in enumerate(gender_file_path):if gender_index >= 0 : #从性别某类断开则选择该类为起始点 for page in range(1,all_page+1):num_in_page = 1#获得url链接,这里额外增加了筛选条件:图片中仅有一个人url = 'https://www.vcg.com/creative/search?phrase=' + keypoints[class_index] +'&creativePeopleNum=2&creativeGender=' +str(gender_index+1)+'&page='+str(page)header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36',
#                'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6' }    req = request.Request(url=url,headers=header)openhtml = request.urlopen(req).read().decode('utf8')   #正则表达式com = re.compile('"url800":.*?/creative/.*?.jpg"')# 匹配URl地址urladds = com.findall(openhtml)for urladd in urladds:#try ... except防止匹配出错后程序停止try:add = 'http:'+urladd.strip('"url800":')  #获取文件名称,格式:vcg+性别+获取方式+page+page中的第几张图片,vcg_raw代表原vcg网站对性别分类filename = classnames[class_index]+'_'+gender_file_path[gender_index]+'_vcg_raw_page'+str(page)+'_'+str(num_in_page)+'.jpg'path = get_path(classnames[class_index],gender_file_path[gender_index],filename)print('当前下载...',filename)dom = request.urlopen(add).read()with open(path,'wb') as f:f.write(dom)sum_all_num += 1num_in_page += 1except:print('当前该任务总共总共下载:',sum_all_num) #监控进度if sum_all_num % 50 == 0: #监控进度print('当前该任务总共下载:',sum_all_num)

Step 4 查看爬取图像的质量

单张图片约100kb左右,尺寸约800*533.
由于未获取图片版权,因此就不展示爬取的图片了.

Python爬虫——按照关键词爬取视觉中国高清图像相关推荐

  1. 【Python爬虫实战】爬取IU高清大图

    文章目录 一.准备工作 二.具体分析 三.具体步骤 (1)将HTML文本提取出来 (2)第一步解析获得各个图集网址 (3)第二步解析获得图集中每张图片所在页面网址 (4)第三步解析获得每张图片网址 ( ...

  2. Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图

    Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图 写在前面 最近在玩蛇的时候发现一个抓包神器Fiddler,简直不要太好用,于是当作练手就把这软件给安排了,王者荣耀盒子一个 ...

  3. python爬虫实践之爬取豆瓣高评分电影

    目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 整理总结 概述 爬取豆瓣的高评分的电影. 准备 所需模块 re模块 requests模块 涉及知识点 ...

  4. python 阴阳师 识别图像_Python爬虫练习:爬取阴阳师高清大图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本环境配置 python 3.6 pycharm requests 相关模块pip安装即可 ...

  5. Python 网络爬虫:爬取4K高清美图

    爬取4K高清美图 这篇爬虫主要是用来爬取网站高清4K图片,这也是笔者学初学爬虫的时候最先写一个的爬虫脚本,现在回过头来重新梳理一下,也算是对从前知识的一个总结,希望对大家有所帮助! 文章目录 爬取4K ...

  6. python爬虫系列(2):分析Ajax 爬取搜狗高清壁纸

    这次我们来分析一下Ajax(至于Ajax是什么意思请自行百度了,这里就不过多解释),爬取一些高清壁纸,等待下载到本地之后,然后我们再慢慢的筛选这些壁纸.那么这次的目标就是搜狗壁纸,啥1280*720的 ...

  7. Python爬虫从入门到精通:(9)数据解析_xpath解析2_爬取4K高清动漫图片_Python涛哥

    使用xpath爬取4K高清动漫图片名称和图片数据 爬取当前页: # 创建文件夹 存储图片 dirName = 'GirlsLib' if not os.path.exists(dirName):os. ...

  8. 通过Python爬虫按关键词抓取相关的新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加密.微博的登录验证等.相比较而言,新闻网站的反爬机制 ...

  9. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)

    [Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...

最新文章

  1. 【转】C#中的线程 入门
  2. 根据录入的计算公式计算_污水处理工程设计入门(10)—堰口计算
  3. Asp.Net开通支付宝移动端网页支付
  4. 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】
  5. 如何在Windows11和Windows10上获取驱动程序更新
  6. 你不知道的事:AWR 基线和 AWR Compare Period Report 功能介绍
  7. Spark源码分析之Sort-Based Shuffle读写流程
  8. (1)zynq FPGA简介
  9. 虚拟化不会增加安全复杂性
  10. HTML期末作业我的家乡静态网页设计
  11. 微信点餐外卖源码小程序开发
  12. linux学习书籍汇总 值得推荐的linux学习书籍
  13. java房屋租赁系统-房东租客系统PHP小程序
  14. mysql drop column_MySQL DROP COLUMN
  15. 史上最全金融产品架构分析一:银行理财产品
  16. Material Design实战
  17. Windows API大全
  18. 堡垒机JumpServer(六):内网管理云端服务器
  19. 微信公众号注册已达上限怎么办?提升限额方法来了
  20. AndroidTagView 云标签

热门文章

  1. 基于树莓派开发板的智能家居系统的设计和实现
  2. 怎样用计算机给ipd传电影,怎么拷贝电影到ipad 如何将电脑上的文件拷贝到iPad上...
  3. 计算机操作系统中的硬件资源和软件资源都包括哪些
  4. c++转JAVA之路
  5. ES6新增了哪些特性又和ES5有什么不同?
  6. HTTP请求和响应全过程解析
  7. JAXB实现JavaBean和xml互相转换
  8. 最强建筑师工具 GRAPHISOFT ARCHICAD 22 Build 5009 启用教学
  9. 征服 Apache + Tomcat
  10. 国瀚实业|投资理财项目该如何选择才安全