精华内容
下载资源
问答
  • python爬取图片附源码

    2019-07-19 08:18:32
    python爬取妹子图,各种类型的上万张,老司机赶紧上车! 为了保证列车能够顺利到达终点站,请准备以下环境: python 3,安装requests、bs4等模块 简单的小爬虫,供新手学习参考,只实现了图片的爬取,关于超时、...

    用python爬取妹子图,各种类型的上万张,老司机赶紧上车!

    为了保证列车能够顺利到达终点站,请准备以下环境:

    python 3,安装requests、bs4等模块

    简单的小爬虫,供新手学习参考,只实现了图片的爬取,关于超时、异常处理等都没有,根据具体需求可自己更改。转载请标明地址,谢谢。

    没上车的赶紧,车要开了。。。。。

    网站地址:https://www.keke234.com

     

    源码:

    
    # 导入requests库
    import requests
    # 导入文件操作库
    import os
    import bs4
    from bs4 import BeautifulSoup
    import sys
    import importlib
    importlib.reload(sys)
    
    
    # 给请求指定一个请求头来模拟chrome浏览器
    global headers
    # headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3352.181 Safari/537.36'
               # ,'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
               # ,'accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9'
               # ,'cache-control': 'max-age=0','upgrade-insecure-requests': '1'
               }
    # 爬图地址
    globalUrl = 'https://www.keke234.com/'
    # 定义存储位置
    global save_path
    
    path = 'D:\pyPictures'
    
    
    # 创建文件夹
    def createFile(file_path):
        if os.path.exists(file_path) is False:
            os.makedirs(file_path)
        else:
            print("文件已存在")
        # 切换路径至上面创建的文件夹
        os.chdir(file_path)
    
    def get(url):
        res = requests.get(url, headers=headers)
        res.encoding = 'GBK';
        soup = BeautifulSoup(res.text, 'html.parser')
        return soup;
    
    # 主方法
    def main():
        createFile(path)
        soup=get(globalUrl);
        #获取所有类别
        allCategory=soup.find('ul', id='menu').find_all('a');
        for i in range (1,len(allCategory)-1):
            filePath=path+"/"+allCategory[i].attrs['title'];
            createFile(filePath)
            #根据类型打开链接
            soup1=get(allCategory[i].attrs['href']);
            #获取页码
            pars1=soup1.find('span',class_='pageinfo').find('strong').text
            #每个类别所有页
            allPage=int(pars1);
            #抓取所有页连接
            for j in range(allPage):
                url2='';
                if 'gaoqing/cn' in allCategory[i].attrs['href']:
                    url2 = allCategory[i].attrs['href'].replace("index.html", "list_1_"+str(j+1)+".html");
                if 'gaoqing/rihan' in allCategory[i].attrs['href']:
                    url2 = allCategory[i].attrs['href'].replace("index.html", "list_2_" + str(j + 1) + ".html");
                if 'gaoqing/oumei' in allCategory[i].attrs['href']:
                    url2 = allCategory[i].attrs['href'].replace("index.html", "list_3_" + str(j + 1) + ".html");
                soup2 = get(url2)
                pars2 = soup2.find_all(class_='heart nologin')
               #详情连接
                for k1 in range(1,len(pars2)):
                       url3 = pars2[k1].attrs['href'];
                       path1=url3.split('/')[-1][0:-5];
                       createFile(filePath+'/'+path1)
                       soup3 =get(url3)
                       if soup3.find('div', class_='page').text!='':
                           pars3 = soup3.find('div', class_='page').find('a').text
                           #打开连接详情,循环所有页
                           for t in range(1,int(str(pars3)[1:2])):
                               if t==1:
                                 url4 = url3;
                               else:
                                 url4 = url3[0:-5]+"_"+str(t)+".html";
                                #按照页开始爬取
                               soup4 = get(url4)
                               pars4 =soup4.find('div', class_='content').find_all('img')
                               for t1 in range(len(pars4)):
                                   imgUrl=pars4[t1].attrs['src'];
                                   print(imgUrl.split('/')[-1])
                                   file_name=imgUrl.split('/')[-1]
                                   if os.path.exists(file_name):
                                       pass;
                                   else:
                                       img = requests.get(imgUrl, headers=headers)
                                       f = open(file_name, 'ab')
                                       f.write(img.content)
                                       f.close()
    
    
    if __name__ == '__main__':
        main()

    爬取结果:

    展开全文
  • python爬取百度图片,通过更改标签名,可以爬取各种类型的图片,如动物,水果,美女,动漫等等,还可以通过更改格式来保证下载的图片格式一致。还有图像批量处理程序是统一爬取图片的分辨率,名称,格式。
  • Python爬取图片并分类存储

    千次阅读 2020-04-12 14:59:19
    既然想要爬取图片,那咱们就要爬一(成)张(百)两(上)张(千)的了(`・ω・´)。既然这么多的图片如果用传统的方式一张张进行下载,那得等到猴年马月????。毫无意外Scrapy框架可以帮助实现,让我们事半功倍,...

    前言

    既然想要爬取图片,那咱们就要爬一(成)张(百)两(上)张(千)的了(`・ω・´)。既然这么多的图片如果用传统的方式一张张进行下载,那得等到猴年马月👿。毫无意外Scrapy框架可以帮助实现,让我们事半功倍,下面就让我们实现吧!

    分析

    网上其他文章爬取的要么是美女、要么是猛男,咱们就没那么庸俗了。我们什么类型都要ヽ(°▽、°)ノ。我们要爬取的地址是美桌一个壁纸图片网站。如下图所示:
    样张
    我们按照红框标题进行分类,用青色框的名字作为图片名。嗯······大概就是这个亚子:
    图片结构
    详情
    接着我们来看一哈那个网页分析
    在这里插入图片描述
    各类详情
    HTML结构
    如图所示每一个分类都是一个div,每个div里面都有ul>li,我们要的信息毫无意外的就保存在这里(废话)。然后我们要提取的信息是<h2></h2>中的分类标题;<img>中的图片地址和<p></p>中的图片标题。对于下面这种220 × 147 的小图片不是我们的目标。
    在这里插入图片描述
    我们要爬就爬大的!!
    1920 × 1200 才是我们的需要,看上去护眼(手动滑稽)

    1920* 1200

    代码实现

    我们分析完了就开撸!

    创建一个scrapy项目:scrapy startproject Photo
    接着创建一个爬虫:scrapy genspider photo_spider win4000.com

    项目已经创建,我们来到items.py来进行字段的定义。这里定义了三个:imgtitleimgnameimgurl。然后我们来到刚刚新建的photo_spider.py爬虫文件中编写逻辑

    import scrapy
    
    from Photo.items import PhotoItem
    
    class PhotoSpider(scrapy.Spider):
        name = 'photo_spider'
        allowed_domains = ['win4000.com/']
        start_urls = ['http://www.win4000.com/wallpaper.html']
    
        def parse(self, response):
            div = response.css('div.list_cont')
            for info in div:
                title = info.css('div.tit h2::text').extract_first()
                for li in info.css('ul li'):
                    name = li.css('p::text').extract_first()
                    next_url = li.css('a::attr(href)').extract_first()
                    yield scrapy.Request(next_url, callback=self.con_url, dont_filter=True,
                    						meta={'title': title, 'name': name})
    
        def con_url(self, response):
            item = PhotoItem()
            item['imgtitle'] = response.meta['title']
            item['imgname'] = response.meta['name']
            item['imgurl'] = response.css('.pic-meinv img::attr(src)').extract_first()
            # print(item)
            yield item
    

    由于我们获取的是大图,所以爬虫是在两个页面之间来回穿梭的,我们保存的信息可以在第一个页面通过Request中meta传参的方式传递到下一个页面的回调函数。回调函数通过response.meta[key]获取信息后,填充到item对象中,在信息都填充完毕之后再yield item回调函数如果不能够生效记得在Request对象中添加dont_filter=True参数,即url去重。

    图片的下载还是要在管道中进行的,首先我们来讲讲概念。图片的下载在Scrapy内部是ImagesPipeline类控制的,而我们现在就是要继承ImagesPipeline类。虽然ImagesPipeline类是也是继承了FilesPipeline类,但是ImagesPipeline有自己的特色:过滤掉不符合自定义图片尺寸的(settings中设置),图片转换为RGB格式,默认存储格式是jpg…
    那么可以在settings中设置的图片属性有:

    IMAGES_STORE = 'D:\Image'  # 图片保存地址,默认是IMAGES_STORE\full\名字.jpg
    MIN_WIDTH = 220 		# 图片的最小宽度
    MIN_HEIGHT = 147		# 图片的最小高度
    

    查看源码可以发现有两个函数是我们需要重写的:

    	# 第一个,通过获取的url进行下载
        def get_media_requests(self, item, info): #
            return [Request(x) for x in item.get(self.images_urls_field, [])]
            
        # 第二个,设置下载路径,图片名字默认是哈希值(字母+数字=毫无逻辑(。_ 。))
        def file_path(self, request, response=None, info=None):
            image_guid = hashlib.sha1(to_bytes(request.url)).hexdigest()
            return 'full/%s.jpg' % (image_guid)
    

    具体代码如下

    from scrapy.pipelines.images import ImagesPipeline,FilesPipeline
    from scrapy import Request
    
    class PhotoPipeline(ImagesPipeline):
    
        def get_media_requests(self, item, info):
        	# Request meta传参:图片信息
            yield Request(url=item['imgurl'],meta={'name':item['imgname'],'title':item['imgtitle']})
            # 这里注意,如果item['imgurl']的value是字符串直接yild即可,列表需要循环!
    
        def file_path(self, request, response=None, info=None):
            title = request.meta['title'] # 获取图片的分类标题
            name = request.meta['name']  # 获取图片的名字
            filename = u'{0}/{1}.jpg'.format(title, name) # 根据源码,拼接地址
            return filename
    

    这里敲完之后去settings.py将设置IMAGES_STORE=保存地址,将ITEM_PIPELINES取消注释,后面的数值越小越优先。

    执行 scrapy crawl photo_spider 就可以看到图片乖乖在我们定义的路径里了🤗

    在这里插入图片描述

    展开全文
  • import requests import os import time from urllib.request import urlretrieve def saveImg(): if not os.path.exists('D:\Python\LocalhsotXM\.idea\王者荣耀'): os.mkdir('D:\Python\LocalhsotXM\.idea...

    博主码云地址:https://gitee.com/whsAf007/Python.git
    直接git clone 取

    展开全文
  • 最新python脚本爬取百度图片,可以爬取各种类型图片,如动物,水果,美女,动漫等等,一次性可以爬取1020张高清图片。希望我所上传的资源能够对你有所帮助。
  • python爬取网页图片

    2021-03-23 17:38:25
    python爬取网页图片 首先导入两个库 import requests import re 导入方法,在终端依次输入以下指令 pip install requeste pip install re 废话不多说,上代码 import requests import re def getHtml(url): ...

    用python爬取网页图片
    首先导入两个库

    import requests
    import re
    

    导入方法,在终端依次输入以下指令

    pip install requeste
    
    pip install re
    

    废话不多说,上代码

    import requests
    import re
    
    
    def getHtml(url):
        try:
            # 获取网页
            r = requests.get(url)
            # 判断返回的Response类型状态是不是200。如果是200,他将表示返回的内容是正确的,如果不是200,就会产生一个HttpError的异常
            r.raise_for_status()
            # 编码类型
            r.encoding = 'utf-8'
            # 打印趴下来的网页
            # print(r.text)
            return r.text
        except:
            # 抛出异常
            return "error"
    
    
    # 以逐浪小说网为例,里面图片不多,比较适合做示范
    def getImg(html):
        # 正则表达式匹配趴下来的网页中以http开头,以html结尾的内容
        reg = r'src="(http.+?\.jpg)"'
        # 把reg中的内容转成一个列表
        imglist = re.findall(reg, html)
        i = 0
        # 这里做的判断主要是因为提取出来的img地址中的第12-56有两个地址,产生了异常,无法下载图片,不理解的话可以在打印imglist看一下
        listi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 57, 58, 59, 60, 61]
        for url in imglist:
            if i in listi:
                # 在列表中的的图片地址是正常的
                response = requests.get(url)
                i = i + 1
            else:
                # 不在列表中的图片地址是异常的,所以要进行截取
                reg1 = imglist[i]
                reg2 = reg1[46:]
                response = requests.get(reg2)
                i = i + 1
            # 打开文件夹,把图片存进去
            with open(".\\wb\\" + str(i) + ".jpg", "wb") as fd:
                fd.write(response.content)
                print('图片', i, "保存成功\n")
    
    
    html = getHtml("http://www.zhulang.com/")
    getImg(html)
    

    注意:
    1、爬取的图片地址有时候会有问题,所以如果图片不展示的话,可以看看是不是地址错误
    2、有些网页需要添加请求头或者其他一些参数的,可以自行去了解
    3、有些网站设置了反爬虫的话,暂时还不清楚怎么解决

    展开全文
  • http://www.ivsky.com 这个网站上有很多壁纸的图片,看到动漫类型的图片都挺好看,本文来练习用 Python 爬取图片并存储到本地。 实现过程 1.站点分析 分析这个站点,选择动漫壁纸 ...
  • python 爬取网页图片1

    2020-01-01 20:41:59
    (1)初学Python-只需4步,爬取网站图片 https://www.jianshu.com/p/11454866bc15 [START] 第一步:获取网页的源代码 urllib.request.urlopen().read() 这个方法是获取到请求的这个URL所返回的网页源代码信息数据,...
  • python基础爬虫总结 1.爬取信息原理 与浏览器客户端类似,向网站的服务器发送一个请求,该请求一般是url,也就是网址。之后服务器响应一个html页面给客户端,当然也有其他数据类型的信息,这些就是网页内容。我们要...
  • python爬取并下载instagram上的图片和视频前文分析网页完整源码 前文 环境为:Python3.7,本文只用了requests库和re正则匹配内容 获取网页源代码 首先要确保自己对 https://www.instagram.com 发起的请求能返回正常...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于python教程,作者:小雨 刚接触Python的新手、小白,可以复制下面的链接去免费观看Python的...
  • Python爬取百度贴吧的图片

    千次阅读 2015-01-21 21:50:18
    Python是一个弱类型的动态语言 下面是我的第一个简单的爬虫脚本程序 #coding=gbk #导入re和urlLib两个库 import re import urllib #定义一个有参的获得图片的方法,方法名为getImg def getImg(url): #创建url...
  • 1.抓取不同类型图片 2.编写一个GUI界面爬虫程序,打包成exe重新文件 3.遇到的难点 1.分析如何抓取不同类型图片 首先打开网站,可以看到有如下6个类型的菜单 在这里插入图片描述 点击不同菜单,发现URL显示如下 ...
  • 我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种。 我比较之后,决定在亚马逊来实现我的需求。 我分析网站后发现,亚马逊有个高级搜索的功能,我就...
  • 1.抓取不同类型图片 2.编写一个GUI界面爬虫程序,打包成exe重新文件 3.遇到的难点 1.分析如何抓取不同类型图片 首先打开网站,可以看到有如下6个类型的菜单 在这里插入图片描述 点击不同菜单,发现URL显示如下 ...
  • python爬取网站数据

    2018-07-09 16:16:05
    ''' 抓取网络数据 ''' import re,requests ...#设定网络请求返回内容的字符集类型 response.encoding='utf8' #网页源码 text=response.text #解析网络图片路径 def geturl(url): a=re.findall...
  • python爬取今日头条街拍美图

    千次阅读 2019-05-14 22:54:59
    爬取街拍美图(注意:以下长文预警) 成品展示 下图是街拍美图保存到本地的电脑截图。 下图是程序运行时的截图。 需求分析 首先,打开头条的街拍页面,我在不断的往下滑动,页面一直有新的标签刷出来,不过页面的 ...
  • 爬取结果可写入文件和数据库,具体的写入文件类型如下: txt文件(默认) csv文件(默认) json文件(可选) MySQL数据库(可选) MongoDB数据库(可选) SQLite数据库(可选) 同时支持下载微博中的图片和视频,...
  • 首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,...第一步关于直播的类别,从第一张图片我们可以看到在右边有直播的各种类型
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于木下学Python ,作者木下瞳 ...所以小编决定使用 python 爬取上面的
  • Python爬取子页面的图片数据保存到本地主要内容内容分析1.情况说明2.分析主题类型图3.主题的分页具体代码爬取结果总结 主要内容 上次做了一个基于requests和bs4爬取图片保存到本地的实例,今天在上次的基础上再做一...
  • Python图片爬取

    2019-08-15 14:53:32
    这个功能是在与别人讨论的时候发现的,一开始还不知道还可以这样玩,最后讨论才知道,还可以爬取这些东西,最后不仅弄了爬图片,还可以爬别的直接上代码吧 # 获取一个网址 pip install requests from requests ...
  • python爬取亚马逊简单的书籍信息

    千次阅读 2016-11-24 16:50:33
    我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种。
  • 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 爬虫 首先笔者定位为成都,美食类型选的“火锅”,火锅具体类型选的不限,区域选的不限,排序...
  • 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:有趣的Python PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取...
  • Python 爬虫 之 根据图片网址爬取图片 目录 Python 爬虫 之 根据图片网址爬取图片 一、简单介绍 二、实现原理 三、注意实现 四、实现步骤 五、关键代码 一、简单介绍 Python是一种跨平台的计算机程序...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 1. 目标 目标:https://hr.tencent.com/position.php?&start=0#a 爬取所有的...
  • 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ...
  • 今天给大家爬取『大年初一』上映的几部热门数据(评分、时长、类型)以及相关网友评论等数据 对评分、时长、类型进行图表可视化 采用不同词云图案对七部电影『评论』词云秀!!!! 2.数据获取 1.评分数据 网页...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
热门标签
关键字:

python爬取图片类型

python 订阅