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

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

以关键词明星为例,搜索后的网址为 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):
    else:
        os.makedirs(dir_path)
    #获取图像的绝对路径
    file_path = dir_path +'/'+ filename
    return 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 = 0
    if 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 += 1
                    num_in_page += 1
              except:
                print('当前该任务总共总共下载:',sum_all_num) #监控进度
              if sum_all_num % 50 == 0: #监控进度
                print('当前该任务总共下载:',sum_all_num)

Step 4 查看爬取图像的质量

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

编程语言:python 使用模块:requests、beautifulsoup4、urllib 概述:本程序是使用python和bs4以及requests、urllib等模块,实现的一个网页图片爬取和下载的程序。 在完成图片爬取和下载的基础上,使用pyqt5制作了窗口界面,用于人机交互,实现了以下功能:输入网址,可以在窗口内浏览网页,并可以实现网页窗口内跳转。同时可以捕获当前网页的网址,用于获取图片列表,使用文本框界面显示当前页面的所有图片列表,包括序号、图片名称、图片网址,可以使用三种下载方式,一种是当前列表全部下载,一种是根据所选编号单张下载,一种是根据起始编号、图片张数进行任意张下载。 下载完成有消息提示,如果有错误,也会有提示, 注意点:需要注意的是本例仅针对视觉中国网站测试过,确保没有问题,其中有部分路径可能需要修改,在后续版本会优化这个问题。 适合人群:本文适合于初学者,因为是综合了python、pyqt5、beautifulsoup4、requests、urllib等这些模块,所以可以在本例的基础进行扩展,比如由图片下载扩展为文本下载或者音频下载等 项目地址:https://gitcode.com/supzhang/epg 1、项目介绍 老张的EPG是一个基于Python3和Django4的开源项目,它致力于帮助用户轻松抓取并管理来自多个网络来源的电视节目表信息。该项目设计简洁,功能实用,特别适合那些希望自定义节目表以配合智能电视应用如Perfect Player的爱好者。 2、项目技... 内容概要:使用python利用beautifulsoup模块,对图片网页后台进行分析,提取图片链接并保存下载。可对图片编号进行任意选择。下载图片,图片下载器 适合人群:python初学者,想要上手试一试 能学到什么:1、python基本知识 2、pyqt5相关使用 3、beautifulsoup相关使用 阅读建议:此程序功能相对简单,适合初学者用于练手,并不支持商业化使用,想要学习python及想要试一试爬取图片者,可以使用。 程序经过本人测试,以视觉中国网为例,如果要使用其他图片网站,可以根据程序提示,对网站后台内容进行分析,将程序中相应段参数简单替换即可。 基于Pyside2开发可视化程序界面,抓取高清图片的小工具。用户可以通过输入要查找图片的名称,和需要抓取多少页进行下载到本地上,每一页的图片数量是根据的提供来决定的,当前对版权保护日益严格,因此在此说明爬取图像仅用于个人学习使用,禁止用作商用目的。项目架构程序运行起来,只有一个UI主进程,在初始化的时候创建一个子线程,用于和待开启的子进程(点击下载按钮后,就会开启一个子进程完成事务)交换进程间的数据。 如今版权越来越重要了,特别是今年。前几天,在一个的圈子里看到一条消息,有公司专门针对一些图片对不知情使用者索赔,说一句请各位使用图片的时候明确是否侵权。 借此来学习一下 python 如何用 100 行代码爬取视觉中国网站的设计图片并批量下载,今天我们就开始试着爬取一下视觉中国的网站里的图片,所有图片仅做学习,不做商用。 from selenium import webdriver from lxml import etree 本文章纯粹用来练手,于是我使用了etree,其实光使用find_elements…的方法也可以 二、开始干活 1.首先创建driver对象 driver=webdriver.Chrome() 2.打开网站 driver.get("https://ww... 输入以下命令下载requests包: requests包是python爬虫常用的包 他的下载方式是 pip install requsts如果觉得下载太慢了在后面可以加个镜像源会有很大的提升 例:pip install requsts -ihttps://pypi.tuna.tsinghua.edu.cn/simple 下面是五个常见的镜像源用那个都可以 清华:https://pypi.tuna.ts... 这是一个使用python和beautifulsoup4编写的图片下载程序,主要支持视觉中国网站,可以获取当前网址网页的图片列表,有3种图片下载方式,全部下载、单张下载以及任意张下载。 本例是在之前的一篇博文的基础上,进行了优化了,使界面看起来更整齐,增加了网页浏览。实际窗口: 如上图,可以直接在“图片获取网址”处输入网址,然后点击获取列表按钮,也可以先在“网址”处输入网址,如视觉中国,可以在界面内的浏览器浏览网页,寻找需要的图片页面,网址会自动更新。右侧是下载按钮,图片保存地址默认是桌面,也可以手动