一、爬蟲的基本介紹

1. 什么是爬蟲舶胀?

“網(wǎng)絡(luò)爬蟲”也叫“網(wǎng)絡(luò)蜘蛛”概说,如果把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么蜘蛛就是在網(wǎng)上爬來爬去的蜘蛛嚣伐,爬蟲程序通過請(qǐng)求url地址糖赔,根據(jù)響應(yīng)的內(nèi)容進(jìn)行解析采集數(shù)據(jù)。

比如:如果響應(yīng)內(nèi)容是html轩端,分析dom結(jié)構(gòu)放典,進(jìn)行dom解析、或者正則匹配基茵,如果響應(yīng)內(nèi)容是xml/json數(shù)據(jù)奋构,就可以轉(zhuǎn)數(shù)據(jù)對(duì)象,然后對(duì)數(shù)據(jù)進(jìn)行解析拱层。

2. 有什么作用声怔?

通過有效的爬蟲手段批量采集數(shù)據(jù),可以降低人工成本舱呻,提高有效數(shù)據(jù)量醋火,給予運(yùn)營/銷售的數(shù)據(jù)支撐,加快產(chǎn)品發(fā)展箱吕。?

3. 業(yè)界的情況

目前互聯(lián)網(wǎng)產(chǎn)品競爭激烈芥驳,業(yè)界大部分都會(huì)使用爬蟲技術(shù)對(duì)競品產(chǎn)品的數(shù)據(jù)進(jìn)行挖掘、采集茬高、大數(shù)據(jù)分析兆旬,這是必備手段,并且很多公司都設(shè)立了“爬蟲工程師”的崗位

4. 合法性?

爬蟲是利用程序進(jìn)行批量爬取網(wǎng)頁上的公開信息怎栽,也就是前端顯示的數(shù)據(jù)信息丽猬。因?yàn)樾畔⑹峭耆_的,所以是合法的熏瞄。其實(shí)就像瀏覽器一樣脚祟,瀏覽器解析響應(yīng)內(nèi)容并渲染為頁面,而爬蟲解析響應(yīng)內(nèi)容采集想要的數(shù)據(jù)進(jìn)行存儲(chǔ)强饮。

?5. 反爬蟲

爬蟲很難完全的制止由桌,道高一尺魔高一丈,這是一場沒有硝煙的戰(zhàn)爭,碼農(nóng)VS碼農(nóng)?

反爬蟲一些手段:

(1) 啟動(dòng)Robots協(xié)議行您。

(2)以設(shè)置閾值的方式挑選非正常訪問铭乾。

(3)增加登錄以限制。

(4)AJAX動(dòng)態(tài)加載數(shù)據(jù)娃循。

(5)以謀略取勝炕檩。例如:投毒。

?6. 選擇一門語言

爬蟲可以用各種語言寫, C++, Java都可以, 為什么要Python?

首先用C++搞網(wǎng)絡(luò)開發(fā)的例子不多(可能是我見得太少)捌斧,然后由于Oracle收購了Sun, Java目前雖然在Android開發(fā)上很重要, 但是如果Google官司進(jìn)展不順利, 那么很有可能用Go語言替代掉Java來做Android開發(fā). 在這計(jì)算機(jī)速度高速增長的年代里, 選語言都要看業(yè)績, 真是稍不注意就落后于時(shí)代. 隨著計(jì)算機(jī)速度的高速發(fā)展, 某種語言開發(fā)的軟件運(yùn)行的時(shí)間復(fù)雜度的常數(shù)系數(shù)已經(jīng)不像以前那么重要, 我們可以越來越偏愛為程序員打造的而不是為計(jì)算機(jī)打造的語言. 比如Ruby這種傳說中的純種而又飄逸的的OOP語言, 或者Python這種稍嚴(yán)謹(jǐn)而流行庫又非常多的語言, 都大大弱化了針對(duì)計(jì)算機(jī)運(yùn)行速度而打造的特性, 強(qiáng)化了為程序員容易思考而打造的特性. 所以我選擇Python笛质。而且python語法易學(xué),容易上手社區(qū)活躍骤星,實(shí)現(xiàn)方案多可參考经瓷,各種功能包豐富,少量代碼即可完成強(qiáng)大功能洞难。

?7. 爬蟲基本套路

基本流程: 目標(biāo)數(shù)據(jù)舆吮、來源地址、結(jié)構(gòu)分析队贱、 實(shí)現(xiàn)構(gòu)思色冀、操刀編碼。

基本手段:破解請(qǐng)求限制柱嫌;請(qǐng)求頭設(shè)置锋恬,如:useragant為有效客戶端;控制請(qǐng)求頻率(根據(jù)實(shí)際情景)编丘;IP代理与学; 簽名/加密參數(shù)從html/cookie/js分析;破解登錄授權(quán)嘉抓; 請(qǐng)求帶上用戶cookie信息索守; 破解驗(yàn)證碼;簡單的驗(yàn)證碼可以使用識(shí)圖讀驗(yàn)證碼第三方庫抑片。

解析數(shù)據(jù): HTML Dom解析卵佛;正則匹配,通過的正則表達(dá)式來匹配想要爬取的數(shù)據(jù)敞斋,如:有些數(shù)據(jù)不是在html 標(biāo)簽里截汪,而是在html的script 標(biāo)簽的js變量中;使用第三方庫解析html dom植捎,比較喜歡類jquery的庫衙解; 數(shù)據(jù)字符串; 正則匹配(根據(jù)情景使用)鸥跟;轉(zhuǎn) JSON/XML 對(duì)象進(jìn)行解析


1. 常用的工具

(1) python(2) pycharm(3) 瀏覽器:chrome丢郊、 火狐(4) fiddler

2. fiddler的使用

請(qǐng)求 (Request) 部分詳解

Headers | 顯示客戶端發(fā)送到服務(wù)器的 HTTP 請(qǐng)求的,header 顯示為一個(gè)分級(jí)視圖盔沫,包含了 Web 客戶端信息医咨、Cookie枫匾、傳輸狀態(tài)等

Textview | 顯示 POST 請(qǐng)求的 body 部分為文本

WebForms | 顯示請(qǐng)求的 GET 參數(shù) 和 POST body 內(nèi)容

HexView | 用十六進(jìn)制數(shù)據(jù)顯示請(qǐng)求

Auth | 顯示響應(yīng) header 中的 Proxy-Authorization(代理身份驗(yàn)證) 和 Authorization(授權(quán)) 信息

Raw? | 將整個(gè)請(qǐng)求顯示為純文本

JSON | 顯示JSON格式文件

XML | 如果請(qǐng)求的 body 是 XML格式,就是用分級(jí)的 XML 樹來顯示它

響應(yīng) (Response) 部分詳解

Transformer | 顯示響應(yīng)的編碼信息

Headers | 用分級(jí)視圖顯示響應(yīng)的 header

TextView | 使用文本顯示相應(yīng)的 body

ImageVies | 如果請(qǐng)求是圖片資源拟淮,顯示響應(yīng)的圖片

HexView | 用十六進(jìn)制數(shù)據(jù)顯示響應(yīng)

WebView | 響應(yīng)在 Web 瀏覽器中的預(yù)覽效果

Auth | 顯示響應(yīng) header 中的 Proxy-Authorization(代理身份驗(yàn)證) 和 Authorization(授權(quán)) 信息

Caching | 顯示此請(qǐng)求的緩存信息

Privacy | 顯示此請(qǐng)求的私密 (P3P) 信息

Raw | 將整個(gè)響應(yīng)顯示為純文本

JSON | 顯示JSON格式文件

XML | 如果響應(yīng)的 body 是 XML 格式干茉,就是用分級(jí)的 XML 樹來顯示它

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市很泊,隨后出現(xiàn)的幾起案子角虫,更是在濱河造成了極大的恐慌,老刑警劉巖委造,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戳鹅,死亡現(xiàn)場離奇詭異,居然都是意外死亡昏兆,警方通過查閱死者的電腦和手機(jī)枫虏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爬虱,“玉大人隶债,你說我怎么就攤上這事∨荏荩” “怎么了死讹?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長曲梗。 經(jīng)常有香客問我赞警,道長,這世上最難降的妖魔是什么虏两? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任愧旦,我火速辦了婚禮,結(jié)果婚禮上碘举,老公的妹妹穿的比我還像新娘忘瓦。我一直安慰自己,他們只是感情好引颈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布耕皮。 她就那樣靜靜地躺著,像睡著了一般蝙场。 火紅的嫁衣襯著肌膚如雪凌停。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天售滤,我揣著相機(jī)與錄音罚拟,去河邊找鬼台诗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赐俗,可吹牛的內(nèi)容都是我干的拉队。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阻逮,長吁一口氣:“原來是場噩夢啊……” “哼粱快!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叔扼,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤事哭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瓜富,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳍咱,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年与柑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谤辜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仅胞,死狀恐怖每辟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情干旧,我是刑警寧澤渠欺,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站椎眯,受9級(jí)特大地震影響挠将,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜编整,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一舔稀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掌测,春花似錦内贮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粘勒,卻和暖如春竞端,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庙睡。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工事富, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留技俐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓统台,卻偏偏與公主長得像雕擂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饺谬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • HTTP基本原理 URI捂刺、URL谣拣、URN(Uninform Resource) URI(Identifier):統(tǒng)...
    GHope閱讀 2,079評(píng)論 2 26
  • 上網(wǎng)原理 1募寨、爬蟲概念 爬蟲是什麼? 蜘蛛森缠,蛆拔鹰,代碼中,就是寫了一段代碼贵涵,代碼的功能從互聯(lián)網(wǎng)中提取數(shù)據(jù) 互聯(lián)網(wǎng): ...
    riverstation閱讀 8,052評(píng)論 1 2
  • Python版本管理:pyenv和pyenv-virtualenvScrapy爬蟲入門教程一 安裝和基本使用Scr...
    inke閱讀 35,304評(píng)論 7 93
  • 什么是爬蟲列肢? 網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)蜘蛛,如果把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng)宾茂,那么蜘蛛就是在網(wǎng)上爬來爬去的蜘蛛瓷马,爬蟲程序通過請(qǐng)...
    SFLYQ閱讀 539評(píng)論 0 5
  • 喜鵲在樹上叫 合歡花開得剛好 聽說你喜歡她
    disgust1688閱讀 199評(píng)論 2 5