【写在前边】日本av
萝莉抖音在博客内部《我的站长之路》内部提到了一个百度网盘搜索引擎网站,今天晚潦倒班早照旧决定转头共享一下源码吧!
【网站好像】
名字:盘一下 - 百度网盘搜索引擎
采取域名:www.panyixia.cn [ 有需要域名的牛牛 不错沟通这个域名 我蓄意转让 3年的 一口价在阿里云哦 ]
是否上线:否
【采取本事】
Jsp , Servlet ...
【网站截图】
网站首页
搜索成果页
其他页面(用QQ还真不错扫描加到我的哦!!!)
基本的情况就先容的差未几了,由上头不错得知,网站本事很节略,是以无谓顾忌你下载后你看不懂我的代码,接下来望望神志标合座一览图:
注重了,没灵验maven哦,部分牛牛不会用maven,这个神志就无谓顾忌跑不起来了,胜仗下载,丢进你的eclipse内部即可,看了了了是eclipse哦
斥地环境
win7 + eclipse + jdk1.8 + tomcat7
如果你不是和我同样的斥地环境,又不会处置这些环境问题,我提倡你不要下载我的代码,因为我可能没那么多时候给你解答环境对应的问题,原谅了!
为什么要这样说呢,因为在我之前的共享内部,部分东说念主因为环境问题跑不起来,然后说我的代码弗成用,本体上是因为环境问题导致的!是以,在这里特此评释一下。
简要的画了一个旨趣图,如下
当今网盘搜索引擎,部分是接入第三方的接口(付费),部分则是我方斥地。
代码内部其实用了两种格局
1.诓骗谷歌API
需要处置的问题惟有两个。
①、谷歌自界说搜索接口。
②、如何探访谷歌接口。
以上是一种念念路,然则天朝也曾上不了谷歌了,然则有东说念主照旧要磋磨这种念念路的,请我方去查找对应贵府 搜索key给你了 --> Google自界说搜索
代码片断:
String urlStr="https://www.googleapis.com/customsearch/v1element?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&rsz=filtered_cse&num=10&hl=en&prettyPrint=false&source=gcsc&gss=.com&sig=8bdfc79787aa2b2b1ac464140255872c&start="+first+"&cx=014027524001724272181:fosdjczvtqc&q="+key+"&sort=&googlehost=www.google.com"; URL url = new URL(urlStr); logger.info("---------------"+urlStr); BufferedReader bufr = new BufferedReader(new InputStreamReader(new BufferedInputStream(url.openStream()),"utf-8")); String line; StringBuffer sb=new StringBuffer(); while((line = bufr.readLine())!=null){ sb.append(line); } bufr.close(); JSONObject jsonObject=JSONObject.fromObject(sb.toString()); JSONArray results=jsonObject.getJSONArray("results"); JSONArray r=new JSONArray(); List<Message> list = new ArrayList<Message>(); Message msg = null; for(int i=0;i<results.size();i++){ JSONObject j=(JSONObject) results.get(i); msg = new Message(); msg.setTitle(j.get("title").toString()); msg.setUrl(j.get("unescapedUrl").toString()); msg.setContent(j.get("content").toString()); list.add(msg); }
2.诓骗别的搜索引擎(必应搜索引擎)
大体的念念路其实皆是同样的,仅仅换了一个壳子辛苦。
代码片断:
protected String crawlSource(String url) throws ClientProtocolException, IOException { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); CloseableHttpResponse httpResponse = httpClient.execute(new HttpGet(url)); String result = EntityUtils.toString(httpResponse.getEntity()); return result; } @Override public List<Message> getList(String url) { String result = null; List<Message> list = new ArrayList<Message>(); Message msg = null; try { result = crawlSource(url); Document doc = Jsoup.parse(result); Elements es = doc.select(".b_algo h2 a"); for (Element e : es) { msg = new Message(); msg.setTitle(e.html()); msg.setUrl(e.attr("href")); msg.setContent(e.parent().parent().select(".b_caption").html()); list.add(msg); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }
小小的总结
直露的说,现时好多搜索网盘理解的作念法是摄取第一种念念路,为什么呢?
如果你用的是自界说谷歌搜索本事,建造好了,就很理解了,然则你要处置若何让国内用户探访取得的问题。是以有些东说念主的作念法是写接口放一套源码在香港,或是外洋,主淌若不错探访谷歌的就不错了。
然后在国内调用写的接口,在作念一个数据展示即可。
那我神志中摄取的是必应的搜索引擎,平允便是无谓顾忌国内照旧外洋皆不错探访,过错便是:使用搜索次数到一定的量的时候,就无法复返数据了。我个东说念主推断是,必应有一套属于我方的算法,看是否为爬虫或是机器东说念主去调用他们的接口
在本体中,我是遭受过这样的问题,比如刚刚部署好的神志,运转的1-2天搜索什么皆不错出来,然则4-5后如果使用的东说念主多了搜索的次数多了,就会出现一个问题,搜索什么皆没数据了。
【写在终末】
也评释了一些问题,共享这个源码的初志便是为了互相学习,可爱就下载。
虽然,如果你也主义,你所有不错下载我的作念的更好,不错加一个后台等等。
探访地址::8080/baidu/日本av