網(wǎng)絡(luò)爬蟲程序員被抓,我們還敢爬蟲嗎?細(xì)數(shù)那些Java爬蟲技術(shù)
最近,某大數(shù)據(jù)科技公司因為涉嫌非法抓取某招聘網(wǎng)站用戶的簡歷信息,公司被查封,負(fù)責(zé)編寫抓取程序的程序員也將面臨坐牢。
事情的大概經(jīng)過是這樣的:
某大數(shù)據(jù)科技公司老板丟給一個小小的程序員一個網(wǎng)站,告訴他把這個網(wǎng)站的數(shù)據(jù)抓取下來,咱們做一做分析。這個小小的程序員就吭哧吭哧的寫了一段抓取代碼,測試了一下,程序沒問題,可以正常的把這個網(wǎng)站的數(shù)據(jù)給抓取下來,然后就毫不猶豫的上線了。過了幾天,這個小小的程序員發(fā)現(xiàn)抓取的速度有點慢啊,然后他就將1個線程改成10個線程,發(fā)布上線,開始抓取,程序跑的沒毛病。
過了一段時間,網(wǎng)站主的老板發(fā)現(xiàn)最近網(wǎng)站訪問量激增,并且還經(jīng)常宕機(jī)。然后組織公司程序員排查系統(tǒng)問題,經(jīng)過排查發(fā)現(xiàn),系統(tǒng)某一個接口頻繁訪問,遂懷疑有人惡意攻擊,于是就報案了。警察通過訪問來源IP順藤摸瓜,查到小小程序員所在的公司,把公司全員200人全部扣留調(diào)查,這名小小程序員由于負(fù)責(zé)抓取程序的編寫,將面臨坐牢。小小程序員一臉懵逼,我只負(fù)責(zé)老板交給我的任務(wù),我犯什么法了?
看了這個新聞,程序員朋友還不趕快將你的爬蟲程序下線,要不下一個抓的就是你,怕不怕?
爬蟲技術(shù)對于大多數(shù)程序員來說一點不陌生,大多數(shù)程序員都干過爬蟲的事情吧!我記得我剛畢業(yè)入職的第一家公司我就是負(fù)責(zé)爬蟲的。主要爬取各大高校官網(wǎng)的新聞資訊信息,然后利用這些信息給高校做手機(jī)微官網(wǎng)。當(dāng)然,我們是經(jīng)過了大多數(shù)高校的默認(rèn)的。
今天我們暫且不論爬蟲是否違法,這個問題我們也論不清楚。國內(nèi)現(xiàn)在這么多做大數(shù)據(jù)分析公司,他們可以提供各種數(shù)據(jù)分,他們的數(shù)據(jù)是從哪里來的?有幾家是正當(dāng)來源?恐怕大多都是爬來的。今天我們細(xì)數(shù)那些java爬蟲技術(shù)。
一、Jsoup
的HTML解析器,可直接解析某個URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。這也是我最早使用的爬蟲技術(shù)。
二、HtmlUnit
HtmlUnit是一款java的無界面瀏覽器程序庫。它可以模擬HTML文檔,并提供相應(yīng)的API,允許您調(diào)用頁面,填寫表單,點擊鏈接等操作。它是一種模擬瀏覽器以用于測試目的的方法。使用HtmlUnit你就感覺你是在操作瀏覽器,他對于css和js都可以很好的支持。
三、Selenium
Selenium是一個用于Web應(yīng)用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
Selenium我覺得是最好的爬蟲工具了,因為它完全模擬瀏覽器。由程序掉起瀏覽器,模擬人的操作。關(guān)于Selenium在我的文章[Selenium利器!解放測試程序員的雙手]有專門講解。
最后,爬蟲有風(fēng)險,使用需謹(jǐn)慎。希望廣大程序員朋友在使用爬蟲技術(shù)的時候,要有數(shù)據(jù)隱私的意識。
以下內(nèi)容來源網(wǎng)絡(luò):
如果爬蟲程序采集到公民的姓名、身份證件號碼、通信通訊聯(lián)系方式、住址、賬號密碼、財產(chǎn)狀況、行蹤軌跡等個人信息,并將之用于非法途徑的,則肯定構(gòu)成非法獲取公民個人信息的違法行為。
除此之外,根據(jù)相關(guān)規(guī)定,對于違反國家有關(guān)規(guī)定,向他人出售或者提供公民個人信息,情節(jié)嚴(yán)重的,竊取或者以其他方法非法獲取公民個人信息的,均可構(gòu)成成“侵犯公民個人信息罪”,處三年以下有期徒刑或者拘役,并處或者單處罰金;情節(jié)特別嚴(yán)重的,處三年以上七年以下有期徒刑,并處罰金。