精华内容
下载资源
问答
  • 图片抓取

    2013-11-01 14:46:40
    简单图片抓取,Java实现 点击(此处)折叠或打开 public void getpic(String src,String num,int loc,String alt,String category,String name) {  int id = ...
    简单图片抓取,Java实现

    点击(此处)折叠或打开

    1. public void getpic(String src,String num,int loc,String alt,String category,String name) {
    2.         int id = Integer.parseInt(num);
    3.         int id1 = id/1000000;
    4.         int id2 = id/1000;
    5.         String path ="F:\\image\\"+id1+"\\"+id2+"\\"+num+"\\";
    6.         File cate = new File(path);
    7.         if (!cate.exists()&&!cate.isDirectory()) {
    8.             cate.mkdirs();
    9.         }
    10.         String target = path+loc+".png";
    11.         File file = new File(target);
    12.         //System.out.println("url "+src);

    13.         //System.out.println(target);

    14.         try {
    15.             URL url = new URL(src);
    16.             HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
    17.             InputStream inputStream=httpURLConnection.getInputStream();
    18.             byte[] bs = new byte[1024];
    19.             int len;
    20.             OutputStream outputStream = new FileOutputStream(file, true);
    21.             while ((len=inputStream.read(bs))!=-1) {
    22.                 outputStream.write(bs, 0, len);
    23.             }
    24.             outputStream.close();
    25.             inputStream.close();
    26.             httpURLConnection.disconnect();
    27.             BufferedImage bufferedImage = ImageIO.read(file);
    28.             int width = bufferedImage.getWidth();
    29.             int height = bufferedImage.getHeight();
    30.                     } catch (Exception e) {
    31.             // TODO: handle exception

    32.              //e.printStackTrace();

    33.             return ;
    34.         }
    35.     }

    简单实例,保存时可修改格式。
    <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
    阅读(32) | 评论(0) | 转发(0) |
    0

    上一篇:网页解析

    下一篇:简单表达式翻译器

    给主人留下些什么吧!~~
    评论热议
    展开全文
  • 图片抓取

    2013-12-06 15:48:07
    网页图片抓取器,网页图片抓取工具,网页图片抓取
  • 多线程图片抓取一次抓取10页,有需要自己修改。
  • 网页图片抓取工具

    2018-04-21 21:28:33
    用于网页图片抓取工具(GetWebPic)
  • 网站图片抓取助手

    2019-08-27 11:01:13
    2.按照网址指定格式,指定范围进行图片抓取 其它特色: 1.按照图片大小自动进行分组 2.当选择不按名称分组时每3000图片进行分组,以减少图片过多影响查看性能 系统要求: 1.win7以上 2.需要安装.net 4.5.2 环境 3....
  • Web页面图片抓取工具PicpickWeb页面图片抓取工具PicpickWeb页面图片抓取工具Picpick
  • 必应每日壁纸图片抓取是一个以php进行开发的图片抓取工具。 该软件可以抓取微软必应每日的壁纸美图, 并存储在网络空间。仅支持最近15天内图片!
  • 网站图片抓取最初版本
  • grabImage 图片抓取工具
  • Capture 图片抓取工具

    2012-05-28 09:32:50
    Capture 图片抓取工具,更加快捷方便的进行图片抓取
  • 百度图片抓取

    千次阅读 2019-06-18 19:51:52
    使用scrapy对百度图片抓取    这篇水文是为那些刚刚开始写爬虫的朋友们准备的,已经在爬虫坑里呆了很久的老鸟请绕过(自己分析去!你个伸手党)。    废话不多说(这就说的不少了),打开百度...

    使用scrapy对百度图片抓取

       这篇水文是为那些刚刚开始写爬虫的朋友们准备的,已经在爬虫坑里呆了很久的老鸟请绕过(自己分析去!你个伸手党)。
       废话不多说(这就说的不少了),打开百度图片就长这个吊样子
    在哪个框框里面输入你想要下载的图片名称例如白云,苍(老师),狗 。然后,我就输入了”狗”。就是这个吊样子狗
    然后,打开检查(F12)勾选日志,选择XHR筛图
    然后就开始撸代码了,创建一个scrapy项目,不会的同学自行百度。然后,爬虫这样写的:`# -- coding: utf-8 --
    import re
    import scrapy
    import json
    from spiderframe.items import ImgsItem
    from urllib.parse import quote

    class ImageBaiduSpider(scrapy.Spider):
    name = ‘image_baidu’

    def __init__(self, category=None, *args, **kwargs):
        super(ImageBaiduSpider, self).__init__(*args, **kwargs)
        self.category = category
    
    def start_requests(self):
        url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={category}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&word={category}&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&pn=30&rn=30&gsm=1e&1560505489300=".format(category=quote(self.category))
        yield scrapy.Request(url=url,  callback=self.parse, dont_filter=True)
    
    def parse(self, response):
        resp = json.loads(response.text)
        data = resp.get("data", [])
    
        img_urls = []
        for img in data:
            hover_url = img.get("middleURL")
            if hover_url:
                img_urls.append(hover_url)
                print(hover_url)
    
        item = ImgsItem()
        item["category"] = self.category
        item["image_urls"] = img_urls
        yield item
    
        total_num = resp.get("displayNum")
        current_num = re.findall('&pn=(.*?)&rn=30', response.url)[0]
        if int(current_num) < int(total_num):
            url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={category}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&word={category}&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&pn={page}&rn=30&gsm=1e&1560505489300=".format(
                category=quote(self.category), page=int(current_num)+30)
            yield scrapy.Request(url=url, callback=self.parse, dont_filter=True)
    

    `
    items 是这样定义的:

    # -*- coding: utf-8 -*-
    
    # Define here the models for your scraped items
    #
    # See documentation in:
    # https://doc.scrapy.org/en/latest/topics/items.html
    
    import scrapy
    
    
    class SpiderframeItem(scrapy.Item):
        # define the fields for your item here like:
        # name = scrapy.Field()
    	# 这个跟爬图片无关
        url = scrapy.Field()
        content = scrapy.Field()
    
    
    class ImgsItem(scrapy.Item):
        # define the fields for your item here like:
        # name = scrapy.Field()
    	# 这个是爬图片的
        category = scrapy.Field()
        image_urls = scrapy.Field()     # 这个图片的URL 类型:list
        images = scrapy.Field()         # 这个看源码,源码说默认结果字段,也不知道要它干啥, 有个屌用!
    
    

    pipelines是这样写的

    
    class ImagePipeline(ImagesPipeline):
        def get_media_requests(self, item, info):
            # 这个方法是在发送下载请求之前调用的,其实这个方法本身就是去发送下载请求的
            request_objs = super(ImagePipeline, self).get_media_requests(item, info)
            for request_obj in request_objs:
                request_obj.item = item
            return request_objs
    
        def file_path(self, request, response=None, info=None):
            # 这个方法是在图片将要被存储的时候调用,来获取这个图片存储的路径
            path = super(ImagePipeline, self).file_path(request, response, info)
            category = request.item.get('category')
            image_store = settings.IMAGES_STORE
            category_path = os.path.join(image_store, category)
            if not os.path.exists(category_path):
                os.makedirs(category_path)
            image_name = path.replace("full/", "")
            image_path = os.path.join(category_path, image_name)
            return image_path
    

    setting设置是这样的:

    # image info
    IMAGES_STORE = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'spiderframe/files/image')
    ITEM_PIPELINES = {
        'spiderframe.pipelines.SpiderframePipeline': 300,
        'spiderframe.pipelines.RedisPipeline': 350,
        'spiderframe.pipelines.MySQLPipeline': 400,
        'spiderframe.pipelines.ImagePipeline': 450,	# 就这个是图片,其他不用看
    }
    

    让爬虫跑起来就完事了,不会让爬虫跑起来的自行百度。
    两个小坑,一个是爬虫传进去那个参数关键词:“狗” 要编码一下。链接要用https不能用http
    两个小坑注意,不然返回的图片URL无法下载。

    展开全文
  • 摘要:PHP源码,小偷采集,图片采集 神偷PHP图片抓取助手,主要是处理帖子编辑器中的内容并将帖子中的图片采集到本地,并且可以重新加水樱简单说就是保存远程图片并加水印,这样可以有效去除网站图片打水印的影响。...
  • 必应每日壁纸图片抓取简介  必应每日壁纸图片抓取是一个以php进行开发的图片抓取工具。 该软件可以抓取微软必应每日的壁纸美图, 并存储在网络空间。仅支持最近15天内图片! 必应每日壁纸图片抓取页面展示 相关...
  • PyQtPicsCrawler:PyQt图片抓取演示程序
  • SnagIt图片抓取工具

    2010-12-18 17:20:32
    很方便的图片在抓取工具 SnagIt图片抓取工具
  • Python实现网络图片抓取

    千次阅读 2019-05-08 01:00:06
    本案例分为:单独图片抓取、全网图片抓取。分别给出实现代码,作为学习和技术交流。 Python基础环境准备 参见:https://blog.csdn.net/yan_dk/article/details/89528463 案例实现 单独图片抓取 impo...

    案例分析

    概述 

              Python在网络爬虫方面功能很强大,程序语言简单高效,下面编程实现一下如何抓取网络图片。本案例分为:单独图片抓取、全网图片抓取。分别给出实现代码,作为学习和技术交流。

    Python基础环境准备

    参见:https://blog.csdn.net/yan_dk/article/details/89528463

    案例实现

    单独图片抓取

    import requests
    
     url='http://724.169pp.net/169mm/201904/141.2.jppg'
     resp = requests.get(url).content
     #print(resp)
     #下载图片
     with open('my.jpg','wb') as f:
         f.write(resp)

     全网图片抓取

    import requests
    import os
    from pyquery import PyQuery as pq
    
    url='https://www.169tp.com/guoneimeinv/'
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36guoneimeinv/	tz.js	logo.gif	1_061G54TJ0P.jpg	1_061515062KO6.jpg	1_06141601425K5.jpg	1_0613152F01P5.jpg	1_050G4194Y5a.jpg	1_05061336131V3.jpg	1_0506133354E04.jpg	1_05041232432964.jpg	1_05041230246021.jpg	1_0502143440W33.jpg	1_05021432411914.jpg'}
    # resp=requests.get(url,headers=headers).content.decode('utf-8')
    # 报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 423: invalid start byte
    # 突破反扒,返回响应
    
    # print(resp)
    # 方法-下载图片
    def download_images(a_url,a_filename):
        ''' 详情页面的图片请求,并保存在本地'''
        resp_dtl = requests.get(a_url, headers=headers).content.decode('gbk')
        doc = pq(resp_dtl)
        bigImgs = doc('.big_img p img').items()
        count=1
        # print(bigImgs)
        for bigImg in bigImgs:
            bigImgSrc=bigImg.attr("src")
            imgs_data=requests.get(bigImgSrc,headers=headers)
            file_name="图片/"+a_filename
            save_name=str(file_name)
            # 若图片目录文件不存在,则重建
            if not os.path.exists(save_name):
                os.makedirs(file_name)
            else:
                with open(save_name+'/{}.jpg'.format(count),'wb') as f:
                    f.write(imgs_data.content)
                count+=1
    
    # 方法-取得图片并下载数据
    def getPics(a_url):
      resp_data = requests.get(a_url, headers=headers).content.decode('gbk')
      doc = pq(resp_data)
    # 通过类选择器获取数据
      picObj =doc(".pic").items()
    # print(pic)
      for pic in picObj:
           # 通过属性获取内容
            picUrl=pic.attr("href")
            picName = pic.text()
            # print(picUrl)
            download_images(picUrl,picName)
    # 主入口方法,调用抓取图片
    getPics(url)

     实现效果,抓取图片文件如下

     

     

    展开全文
  • 来自Google的图片抓取:从Google和Bing图片搜索中提取图片数据集
  • 04_百度贴吧视频和图片抓取.py
  • 网站爬虫——图片抓取小工具
  • 天猫产品图文详情页产品图片抓取保存,原理很简单,首先是根据地址获取页面内容,因为天猫的产品页面结构都是一样的,直接根据正则分析其中图片,然后保存即可。http://www.jinliniuan.com/archives/1244
  • ImageCrawl图片抓取

    2009-08-01 11:59:27
    自己用python 写的ImageCrawl图片抓取程序 ,很小 ,但是很好用,半小时可以下载猫扑上1G的图片,对学习python很有帮助。具体可以参考 http://www.cnblogs.com/ysisl/archive/2009/08/01/ImageCrawl.html
  • 主要介绍了Python实现简单网页图片抓取完整代码实例,具有一定借鉴价值,需要的朋友可以参考下。
  • 远程图片抓取的方法有很多,在本文将为大家介绍下php中是如何实现的,感兴趣的朋友可以了解下
  • 豆瓣美女图片抓取工具java版本
  • 本文实例讲述了PHP通过CURL实现定时任务的图片抓取功能。分享给大家供大家参考,具体如下: 下文为各位介绍一个PHP定时任务通过CURL图片的抓取例子,希望例子对大家帮助,基本思路就是通过一个URL连接,将所有图片的...
  • php网站图片抓取源码

    2013-04-02 11:52:00
    这个源代码提供了网页图片抓取的思路,以及以精良的代码设计提高代码的执行效率
  • snagit.exe 图片抓取

    2012-10-19 18:43:06
    snagit.exe 图片抓取
  • css_down[CSS图片抓取大师V1.2版]仿站必备工具,百盛互联网络出品,免费推荐给大家该软件是网页制作者仿站必备工具,功能有: 1.智能提取远程css文件的背景图片。 2.单个预览或者批量下载。 3.下载网页源文件和网页...
  • 一、百度图片抓取 解决问题:爬虫下载的图片不能打开 未解决问题:百度图片下拉翻页功能 二。百度贴吧图片抓取

    一、百度图片抓取

    百度图片抓取存在两个难点:

    (1)没有翻页功能,只有下拉不断get新的img,这个暂时没有解决,据说可以通过selenium模块来模拟浏览器动作进行,暂未入手,只能抓取最开始get到的那些图片;

    (2)初步试验发现很多图片的url下载下来只有100多字节,无法打开,浏览器打开这些url后发现只有一个简略的预览图,而且刷新后便出现403错误禁止,这可能只是百度的一个中转url,那么真实的url在哪呢,下面上一段百度图片的html代码:

    <img class="main_img img-hover" data-imgurl="http://img1.imgtn.bdimg.com/it/u=1474139545,1219393896&fm=21&gp=0.jpg" src="http://img1.imgtn.bdimg.com/it/u=1474139545,1219393896&fm=21&gp=0.jpg" style="width: 206px; height: 206px; background-color: rgb(200, 188, 152);">
    <li class="imgitem" style="width: 192px; height: 200px; margin-right: 5px; margin-bottom: 5px;" data-objurl="http://scs.ganjistatic1.com/gjfs01/M00/89/F4/CgEHklWmXzvov6K-AABrKnXXM9U624_600-0_6-0.jpg" data-thumburl="http://img4.imgtn.bdimg.com/it/u=2997798573,880478713&fm=21&gp=0.jpg" data-fromurl="ippr_z2C$qAzdH3FAzdH3Fzw5zi7wg2_z&e3B2wg3t_z&e3Bv54AzdH3F257AzdH3F8mnnncc00mx_z&e3Bip4" data-fromurlhost="zaozhuang.ganji.com" data-ext="jpg" data-saved="0" data-pi="0" data-specialtype="0" data-cs="2997798573,880478713" data-width="504" data-height="541" data-title="<strong>宠物</strong>照片" data-personalized="0"><div class="imgbox"><a href="/search/detail?ct=503316480&z=undefined&tn=baiduimagedetail&ipn=d&word=%E5%AE%A0%E7%89%A9&step_word=&ie=utf-8&in=&cl=2&lm=-1&st=undefined&cs=2997798573,880478713&os=2697691740,1594419755&simid=0,0&pn=3&rn=1&di=17885681440&ln=1984&fr=&fmq=1477191469084_R&fm=&ic=undefined&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=0&ist=&jit=&bdtype=0&adpicid=0&pi=0&gsm=0&objurl=http%3A%2F%2Fscs.ganjistatic1.com%2Fgjfs01%2FM00%2F89%2FF4%2FCgEHklWmXzvov6K-AABrKnXXM9U624_600-0_6-0.jpg&rpstart=0&rpnum=0&adpicid=0" target="_blank" style="display: block; width: 191px; height: 206px;" name="pn3" class="div_2997798573,880478713"><img class="main_img img-hover" data-imgurl="http://img4.imgtn.bdimg.com/it/u=2997798573,880478713&fm=21&gp=0.jpg" src="http://img4.imgtn.bdimg.com/it/u=2997798573,880478713&fm=21&gp=0.jpg" style="width: 191px; height: 206px; background-color: rgb(189, 171, 169);"></a></div><div class="hover" title="图片来源: zaozhuang.ganji.com
    图片描述:宠物照片"><div class="ct" style="left: 0px; top: 50px;"><div style="padding-top: 7px;"><a class="title" target="_blank" href="http://zaozhuang.ganji.com/gou/1633355776x.htm"><strong>宠物</strong>照片...</a><br><a class="size">504x541</a></div><a class="dutu" href="/n/pc_search?queryImageUrl=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D2997798573%2C880478713%26fm%3D21%26gp%3D0.jpg&word=%E5%AE%A0%E7%89%A9&fm=searchresult&uptype=button" target="_blank" title="按图片搜索"></a><a target="_self" class="down" οnclick="return p(null,390,{newp:42});" title="下载原图" href="/search/down?tn=download&ipn=dwnl&word=download&ie=utf8&fr=result&url=http%3A%2F%2Fscs.ganjistatic1.com%2Fgjfs01%2FM00%2F89%2FF4%2FCgEHklWmXzvov6K-AABrKnXXM9U624_600-0_6-0.jpg&thumburl=http%3A%2F%2Fimg4.imgtn.bdimg.com%2Fit%2Fu%3D2997798573%2C880478713%26fm%3D21%26gp%3D0.jpg"></a></div></div></li>

    这里面提供了大致两种类型的url:

    data-imgurl:http://img1.imgtn.bdimg.com/it/u=1474139545,1219393896&fm=21&gp=0.jpg

    data-objurl:http://scs.ganjistatic1.com/gjfs01/M00/89/F4/CgEHklWmXzvov6K-AABrKnXXM9U624_600-0_6-0.jpg

    我们打开这两个url发现,竟然是同样的图片,而且上面的url明显只是个预览,因此,确认在获取图像url时获得了多余的imgurl,需要进行剔除。


    Python下载图片的几种方法:

    (1)urllib.urretrieve直接调用

    urllib.urltrieve(url,filename)

    (2)file写入数据

    conn = urllib2.urlopen(all_jpg[0]);  

    f = open('123','wb');  

    f.write(conn.read()); 

     f.close()

    (3)直接利用IO写入数据

    import requests
    from cStringIO import StringIO
    from PIL import Image
    r = requests.get('http://www.solarspace.co.uk/PlanetPics/Neptune/NeptuneAlt1.jpg')
    with open('##.jpg','wb') as fout:
         fout.write(r.content)


    下面上代码:

    #-*-coding:utf-8-*-
    '''
    created by zwg in 2016-10-17
    '''
    import urllib2,urllib
    import os,re
    url='http://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=' \
        '-1&cl=2&ie=gbk&word=%D3%DE%B4%C0&hs=0&fr=ala&ori_query=%E6%84%9A%E8' \
        '%A0%A2&ala=0&alatpl=sp&pos=0'
    
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) '
                             'AppleWebKit/537.36 (KHTML, like Gecko)'
                             ' Chrome/45.0.2454.101 Safari/537.36'}
    request=urllib2.Request(url=url,headers=headers)
    html=urllib2.urlopen(request).read()
    file1=file('baidu.html','w+')
    file1.write(html)
    file1.close()
    pattern=re.compile('http://.+?\.jpg')
    all_image=pattern.findall(html)#这里面有一大部分图片的url是百度的虚拟url,无效
    path='D:\\Python\\web_crawler\\baidu_photo'
    if not os.path.exists(path):
        os.mkdir(path)
    
    import time
    t1=time.time()
    # 下载保存图片的一种方法
    p=re.compile('u=')
    k=0
    for i in all_image:
        if len(p.findall(i))==0:
        #确保不是由百度提供的jsp图片地址,导致下载失败
            try:
                k=k+1
                urllib.urlretrieve(i,path+'\\'+str(k)+'.jpg')
                print i
            except:
                pass
    t2=time.time()
    print '花费时间:', t2 - t1


    二、百度贴吧图片抓取

    这个抓取几乎没有什么难度,直接获取url解析正则即可得到真实url。

    #-*-coding:utf-8 -*-
    '''
    created by zwg in 2016-10-17
    '''
    #下载百度贴吧某个页面的jpg图片
    import re
    import urllib2
    import urllib
    import os
    path='C:\\Users\\zhangweiguo\\Desktop\\jpg'
    if not os.path.exists(path):
        os.mkdir(path)
    def gethtml(url):	#读取html为字符串
        page=urllib2.urlopen(url)
        html=page.read()
        return html
    def getimg(html):	#正则表达式查询
        re_img1="http://imgsrc.baidu.*?jpg"
        re_img1=re.compile(re_img1)
        img1=re_img1.findall(html)
        re_img2 = "http://imgsrc.baidu.*?png"
        re_img2 = re.compile(re_img2)
        img2 = re_img2.findall(html)
        img=[]
        img.extend(img1)
        img.extend(img2)
        return img
    
    
    html=gethtml('http://tieba.baidu.com/p/4530493052')
    img=getimg(html)
    
    #下面是直接下载并保存
    x=1
    for i in img:
        urllib.urlretrieve(i,'C:\Users\zhangweiguo\Desktop\jpg\%s.jpg'%x)
        x=x+1
        print x






    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,852
精华内容 3,140
关键字:

图片抓取