前一篇最后已经表明,我的图片搜索有问题,确实有问题,为啥会有这些呢?
虽然搜索的精度都出来了的,并且也达到了预期的结果。
为啥有些东西会显示不出来呢?
主要原因:就是源网站的限制,我这样明显是在偷流量,那个网站允许爬虫恶意来爬,占资源呢。
但是,既然爬不到,那为啥又能够显示呢?当然原网站通过脚本代码限制了,一个固定的ip来访问的频率。
如果超过一定的频率就会限制的,或者直接直接不允许外网页链接本网站图片。
但是为啥我的索引库里面会有相应的索引呢?当然我推测主要我仅仅是通过流来读取,而并没有来远程链接。
解决思路:第一个找到的方法就是通过高匿名ip来代理,这样是否就可以获得其所有的图片呢?
为此我还特地找了一个专门有代理ip网站,并且自己有写了一个crawlIp来抓取ip,并且通过httclient来检测是否为高匿名。
点击打开网站
项目代码这里就不贴了,主要也是jsoup等来解析网页。
另外一个想到的方法,就是从源头来,我这个引擎呢,并没有本地图片的,爬也仅仅是借用下,用完就还了,
所以我想到的就是本地存储,但是当然这就需要物质支持的,当我把爬完的图片,都存到本地,都建立索引,
并且定期更新,然后在lire的基础上,从底层代码的基础上来提高精度,再把搜索率高的索引靠前......再继续我就是真正的想做一个引擎了
毕竟这仅仅是一个学习的项目,做不大,感觉并不现实也没有物质基础,哈哈哈。
其实最开始的时候,我打算再去利用大数据分布式的知识,这样就能够实现本地存储,但是貌似现阶段并不可能,很多前辈都分享经验,
他们做爬虫的时候,有些或者获得代理ip,或者通过来控制爬取的频率,或者通过拔插网线来更换自己的ip来爬取数据。
也曾尝试过用多线程来缩短爬取和检索的时间。
这整个项目感觉比较难得地方并没有,唯一说起来高大上的工作lire都已经帮你做了,下面给出三个项目,本人编程有限,代码大家也
仅仅参考下吧,钱袋css和html太丑了,可能有些类现在我自己感觉也特别恶心。如果发现有哪些错误和可以更好的方法解决获取不到
源图片的问题,欢迎提出来,大家共同学习
我的获取高匿名ip的项目:https://github.com/anLA7856/CrawIp
我的后台爬图项目:https://github.com/anLA7856/ImageSearch
我的前台检索项目:https://github.com/anLA7856/Crawler