爬蟲之JAVA搜索引擎爬蟲識(shí)別


?? 所謂人之初性本善擦囊,爬蟲誕生之初也是善良的,但是隨著時(shí)代發(fā)展亩码,尤其大數(shù)據(jù)|機(jī)器學(xué)習(xí)等興起之后,爬蟲也像慢慢長(zhǎng)大的人一樣野瘦,有了 善意惡意 之分(說(shuō)明:爬蟲技術(shù)無(wú)分善惡描沟,這里指技術(shù)利用,最好遵循reboot君子協(xié)議鞭光,至少不要把人家爬癱吧)吏廉。

1、善意爬蟲


??善意爬蟲最常見的莫過(guò)于各個(gè)大的搜索引擎廠家惰许,他們釋放數(shù)以億計(jì)的爬蟲每天孜孜不倦的穿梭于各個(gè)服務(wù)之間席覆,收錄我們的網(wǎng)站服務(wù)信息,以供用戶檢索查詢(雖然搜索出來(lái)大多數(shù)都是廣告)汹买,作為網(wǎng)站服務(wù)的運(yùn)營(yíng)商佩伤,每天都大開方便之門歡迎他們來(lái)爬,雖偶爾會(huì)造成服務(wù)器壓力卦睹,可以通過(guò)君子協(xié)議約束(如reboot文件)畦戒,這種爬蟲就可定義為善意的。


2结序、惡意爬蟲


??惡意的爬蟲就不那么友好了障斋,有的是小惡、有的是萬(wàn)惡徐鹤;常見的小惡:每年的畢業(yè)設(shè)計(jì)來(lái)臨之季垃环,有些做數(shù)據(jù)分析相關(guān)畢設(shè)的同學(xué),為了收集數(shù)據(jù)返敬,釋放了N多個(gè)小爬蟲在網(wǎng)上亂竄遂庄。最重要的是:同學(xué)收集好了數(shù)據(jù),記得關(guān)一下呀劲赠,交了畢設(shè)涛目,爬蟲也被拋到九宵云外秸谢,這些無(wú)人認(rèn)領(lǐng)的小爬蟲也就成了僵尸爬蟲,這種往往是小惡霹肝。
??常見的大惡:有沒有想過(guò)為啥搶不到火車票估蹄、為啥搶不到專家號(hào),因?yàn)槟愕氖植豢赡芸爝^(guò)爬蟲沫换;還有一些所謂大數(shù)據(jù)創(chuàng)業(yè)公司臭蚁,他們的大數(shù)據(jù)從哪來(lái)?爬蟲讯赏;這些收集來(lái)的數(shù)據(jù)其中就有很多敏感的個(gè)人信息數(shù)據(jù)垮兑,比如某些提供征信服務(wù)的小公司,比如某簡(jiǎn)歷大數(shù)據(jù)公司被“一鍋端”(網(wǎng)上可查)漱挎;這些涉及個(gè)人敏感數(shù)據(jù)非法收集的都是大惡了系枪,還有那些把別人服務(wù)器爬癱的等等。

3识樱、懲惡揚(yáng)善


??理清楚了善惡嗤无,就要懲惡揚(yáng)善了;在發(fā)賞善罰惡令之前怜庸,要先識(shí)別善惡当犯,辨惡通常的手法是:1、IP頻次識(shí)別 2割疾、UA判斷 3嚎卫、Referer判斷 4、參數(shù)hash驗(yàn)證 等手段宏榕,這里不是今天的重點(diǎn)(以后詳談識(shí)別防護(hù))拓诸。重點(diǎn)揚(yáng)善,就是如何識(shí)別善意爬蟲麻昼,要不花那么多錢做SEO不是打水漂了奠支。


4、JAVA識(shí)別善意爬蟲


??技術(shù)手段很簡(jiǎn)單抚芦,就是通過(guò)IP域名反查來(lái)實(shí)現(xiàn),window下通過(guò)nslookup倍谜、linux下通過(guò)host來(lái)反查,不扯淡叉抡,直接上代碼(DEMO)尔崔。

public class nslookup {

    public static void main(String args[]) {
        System.out.println(spiderBGMU("111.206.221.6"));
        System.out.println(spider360("180.153.232.12"));
    }

    // 百度匹配 http://help.baidu.com/question?prod_id=99&class=476&id=2996
    /*
     * baidu.com baidu.jp 111.206.221.6 百度 
     * googlebot 66.249.67.254 谷歌
     * msnbot-103-25-156-254.search.msn.com 103.25.156.254 必應(yīng)
     * unknown-68-180-228-x.yahoo.com 68.180.228.254 雅虎
     */
    private static boolean spiderBGMU(String ip) {
        String command = "host"; // 默認(rèn)linux
        Properties props = System.getProperties();
        String osName = props.getProperty("os.name");
        if (osName != null && osName.toLowerCase().contains("win")) {
            command = "nslookup";
        }

        try {
            Process p = Runtime.getRuntime().exec(command + " " + ip); // host
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String inline;
            StringBuffer sb = new StringBuffer("");
            while ((inline = br.readLine()) != null) {
                sb.append(inline).append(" ");
            }
            br.close();
            System.out.println("baidu>>>" + sb);
            return sb.indexOf("baidu.com") > 0 || sb.indexOf("baidu.jp") > 0 || sb.indexOf("googlebot") > 0
                    || sb.indexOf("msnbot") > 0 || sb.indexOf("yahoo.com") > 0;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    // 360匹配 http://www.so.com/help/spider_ip.html
    // 這里實(shí)現(xiàn)非精確匹配,如果需要精確褥民,可以下載全量列表
    private static boolean spider360(String ip) {
        String item = " 180.153.232.*,180.153.234.*,180.153.236.*,180.163.220.*,42.236.101.*,42.236.102.*,42.236.103.*,42.236.10.*,42.236.12.*,42.236.13.*,42.236.14.*,42.236.15.*,42.236.16.*, 42.236.17.*,42.236.46.*,42.236.48.*, 42.236.49.*,42.236.50.*, 42.236.51.*,42.236.52.*,42.236.53.*,42.236.54.*,42.236.55.*,42.236.99.*";
        System.out.println("360>>>" + objIP);
        if (item.contains(objIP)) {
            return true;
        }
        return false;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末季春,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子消返,更是在濱河造成了極大的恐慌载弄,老刑警劉巖耘拇,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侦锯,居然都是意外死亡驼鞭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門尺碰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人译隘,你說(shuō)我怎么就攤上這事亲桥。” “怎么了固耘?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵题篷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厅目,道長(zhǎng)番枚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任损敷,我火速辦了婚禮葫笼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拗馒。我一直安慰自己路星,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布诱桂。 她就那樣靜靜地躺著洋丐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挥等。 梳的紋絲不亂的頭發(fā)上友绝,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音肝劲,去河邊找鬼迁客。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涡相,可吹牛的內(nèi)容都是我干的哲泊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼催蝗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼切威!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丙号,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤先朦,失蹤者是張志新(化名)和其女友劉穎缰冤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喳魏,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棉浸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刺彩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迷郑。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖创倔,靈堂內(nèi)的尸體忽然破棺而出嗡害,到底是詐尸還是另有隱情,我是刑警寧澤畦攘,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布霸妹,位于F島的核電站,受9級(jí)特大地震影響知押,放射性物質(zhì)發(fā)生泄漏叹螟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一台盯、第九天 我趴在偏房一處隱蔽的房頂上張望罢绽。 院中可真熱鬧,春花似錦爷恳、人聲如沸有缆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棚壁。三九已至,卻和暖如春栈虚,著一層夾襖步出監(jiān)牢的瞬間袖外,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工魂务, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曼验,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓粘姜,卻偏偏與公主長(zhǎng)得像鬓照,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孤紧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354