这一个博文主要就是如何去爬特定关键字的图;

怎样爬图呢?或者从哪儿去爬图呢?这是首先要考虑的问题。

开始我想到了百度,就是百度图片,利用下面的url:

http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1460352369285_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=狗

仅仅需要把最后一个改成目标检索就可以了,然后我再用jsoup来解析,但是这里就遇到了第一个问题,就是js的问题,

在经过折腾后,我发现如果单纯用jsoup,解析后的原网页仅仅是一部分,也就是我们经常是,下拉条往下,然后就有很多图片,但通过解析原网页,可以看到这样的

字符串后面就是目标图片网页:

也就是说,我能得到图片了,这个问题解决了,百度剩下的无尽的图片肯定是用js动态生成。

接着下一个问题,如何能链接到原网页,也就是我能得到这个图片出现的网页呢?

最终是使用搜狗的引擎来偷图

但是又需要,经过多次把弄后,我决定换一个源头,用搜狗的图片--它的可以得到原网页,并且图片更多~

但是呢?搜狗的并不能通过url来直接获得所要搜索的目标图片。如图:

这个时候就要用htmlunit了,模拟搜狗搜索来“搜索”我要的图片集,这里贴出代码截图:

部分代码:

/*** 通过htmlunit来获得一些搜狗的网址。* 通过模拟鼠标点击事件来实现* @param key* @return* @throws Exception*/public String getNextUrl(String key){String page = new String();try {WebClient webClient = new WebClient();webClient.getOptions().setCssEnabled(false);webClient.getOptions().setJavaScriptEnabled(false);//去拿网页HtmlPage htmlPage = webClient.getPage("http://pic.sogou.com/");//得到表单HtmlForm form = htmlPage.getFormByName("searchForm");//得到提交按钮HtmlSubmitInput button = form.getInputByValue("搜狗搜索");//得到输入框HtmlTextInput textField = form.getInputByName("query");//输入内容textField.setValueAttribute(key);//点一下按钮HtmlPage nextPage = button.click();String str = nextPage.toString();page = cutString(str);webClient.close();} catch (Exception e) {e.printStackTrace();} return page;}

到这儿,我的图片就搜到了,再由下面的两个图片就可以知道我既可以获得源图片,又可以获得原图片网址:

也就是一个page_url和一个pic_url,这样就大功告成了。

这之后,为了能更好的体现项目的可使用性,后台管理界面通过关键字来爬取:

其中在onblur函数中使用ajax来动态判定关键字是否已经存在如果已经存在,则无法继续添加。

当添加完关键字后,就可以在爬图界面进行手动点击操作:

当删除时会将关键字以及图片信息都删除。

在“是否生成索引”这一栏,1表示已经爬好图并且生成索引,0表示尚未生成。

当爬完后,相应的图片信息就会存储到数据库中:

以上就是java后台爬图的整个过程。

有需要的童鞋可以看我其他的文章:http://blog.csdn.net/column/details/javaweb-lire-jsoup.html

javaweb基于内容的图片搜索(2)_java爬虫相关推荐

  1. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介

    原文链接:https://blog.csdn.net/carson2005/article/details/9304913 传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这 ...

  2. 基于内容的图片检索CBIR简介

    原文地址:http://blog.csdn.net/davebobo/article/details/53171311 传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这种依 ...

  3. 以图识图——基于内容的图片检索CBIR(Content Based Image Retrieval)

    作者:kezunhai 出处:http://blog.csdn.net/kezunhai 近20年来,计算机与信号处理领域如火如荼地发展着,随着普通计算机的性能不断地提高,人们对计算机处理信息的能力及 ...

  4. 基于Flickr的图片搜索

    Flickr是雅虎旗下的一家图片分享网站,拥有庞大的数据图片资源,幸运的是,它也为开发人员提供了Api接口,使得可以通过使用Api接口就能使用到大量的图片资源.下面链接是其提供的官方Api文档. ht ...

  5. java 搜索机制_Java爬虫搜索原理实现

    新人国庆没事做,又研究了一下爬虫搜索,两三天时间总算是把原理闹的差不多了,基本实现了爬虫搜索的原理,本次实现还是俩程序,分别是按广度优先和深度优先完成的,广度优先没啥问题,深度优先请慎用,有极大的概率 ...

  6. 如何高效、精准地进行图片搜索?看看轻量化视觉预训练模型

    来源 | 微软研究院AI头条 编者按:你是否有过图像检索的烦恼?或是难以在海量化的图像中准确地找到所需图像,或是在基于文本的检索中得到差强人意的结果.对于这个难题,微软亚洲研究院和微软云计算与人工智能 ...

  7. 简单版的相似图片搜索原理

    基于内容的图片检索(Content Based Image Retrieval, CBIR),也有人称之为以图搜图,是一个很老的研究领域,它是利用机器学习.模式识别.计算机视觉等相关技术对图片的内容进 ...

  8. 朱俊彦团队推出首个基于内容的深度生成模型搜索算法!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 作者 | 李梅 转载自:AI科技评论  编辑 :陈彩娴 最近的生成 ...

  9. 基于Python的QQ音乐音频图片搜索系统设计与实现 毕业论文+源码

    下载地址:https://download.csdn.net/download/m0_61837203/23769927 目录 爬虫: 1 一.库 1 二.实现功能 2 三.实现过程 2 四.难点 3 ...

最新文章

  1. java培训教程分享:Java中怎样将数据对象序列化和反序列化?
  2. 适合新手练手,用Python爬取OPGG里英雄联盟英雄胜率及选取率,详细讲解加注释(建议收藏练手)
  3. CVPR 2021 Oral | 我给大家表演一个无中生有!北航商汤耶鲁新作:DSG
  4. PCL中PFH、FPFH理论
  5. logic.c:1:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘’ token...
  6. 一文详解决策树算法模型
  7. es查询大文本效率_es中terms查询速度能否优化
  8. 除醛重要性美博士环保为您解答!!
  9. SpringBoot精选项目
  10. mysql 逐行读取文件_PHP fgets()和fgetss():逐行读取文件
  11. HDU1555 How many days?【水题+模拟】
  12. canal 增量订阅mysql消息
  13. Java FileOutputStream
  14. JAVA基础(1/17)-JAVA语言概述
  15. 暴风影音 打开 avi 视频文件时 explorer 出错 关闭
  16. 浩辰云建筑2021功能详细介绍
  17. oracle自增序列带字母,[原创]Oracle自增序列
  18. pytorch学习随手记
  19. 微信加密某一个人私聊?微信私密聊天
  20. HDU-5115-Dire Wolf

热门文章

  1. 计算机结构化面试万能套话,结构化面试30句万能套话拯救你.pdf
  2. matlab里伽马校正的特点,查表法实现gamma校正的matlab仿真模型源码
  3. 【黑灰产犯罪研究】Web应用攻击
  4. 平时开发搜集的一些网址
  5. OpenCV常用函数极简简介
  6. EMI-EMC设计注意事项
  7. 2022-2027年中国巴西鲷鱼养殖行业市场调研及未来发展趋势预测报告
  8. 人耳能听的声音范围与各种发音的频率范围
  9. 使用旋转动画实现刻度表
  10. PHP快手直播弹幕采集,获取斗鱼弹幕php版(原创)