建議查閱相關(guān)資料,熟悉各種語言寫爬蟲的優(yōu)缺點(diǎn),再根據(jù)自身情況,選擇適合的爬蟲語言進(jìn)行練習(xí)。
如果僅從“抓數(shù)據(jù)”需求來說,使用網(wǎng)頁數(shù)據(jù)采集器更為省時省力。
推薦通用型的八爪魚采集器:行業(yè)內(nèi)知名度很高的免費(fèi)網(wǎng)頁采集器,擁有超過六十萬的國內(nèi)外政府機(jī)構(gòu)和知名企業(yè)用戶。免費(fèi)好用,操作簡單。編程老手還能使用八爪魚的高級功能。雖然自由度不如自己寫程序,但學(xué)習(xí)成本低,能幫助用戶將有限的資源投入到更有意義的事情上去。
先從編程語言開始學(xué),C++,python, html, sql等等
再學(xué)互聯(lián)網(wǎng)基本結(jié)構(gòu)和原理,這些都是基礎(chǔ)知識。學(xué)的越多,你對網(wǎng)絡(luò)的掌握程度就越高,各種知識最后都會融會貫通到一起。
既然確定了用爬蟲來自動整理文章,你得先理解爬蟲是什么。爬蟲說白了就是一個腳本程序。說到腳本,我們平時遇到一些費(fèi)時費(fèi)力又容易出錯的活兒,都可以把用到的命令寫到腳本里,讓計算機(jī)自動來執(zhí)行。測試同學(xué)說的自動化腳本,運(yùn)維同學(xué)說的環(huán)境配置腳本,都是這個意思。一個腳本包含了很多命令,一個接一個,告訴計算機(jī)第一步干什么,之后干什么,最后干什么。
在這里,我們的目標(biāo)很明確,就是寫一個爬蟲腳本,讓計算機(jī)一步一步的把「給產(chǎn)品經(jīng)理講技術(shù)」的所有歷史文章,保存成pdf。
歷史文章哪里去找?正好,微信公眾號的關(guān)注界面有一個查看歷史消息的鏈接。
點(diǎn)開歷史消息,這個頁面每次顯示10篇文章,如果用戶滑到底,就會再加載10篇出來,典型的異步加載。我們要找的,就是每篇文章的URL地址。只要找到所有文章的URL,就能下載到每篇文章的內(nèi)容和圖片,然后就可以進(jìn)一步加工處理成pdf了。
為此,我們長按頁面選擇在瀏覽器中打開,然后把地址欄里的URL復(fù)制出來,發(fā)送到電腦上,用Chrome打開。用Chrome的最大好處,就是它有一個「開發(fā)人員工具」,可以直接查看網(wǎng)頁的源碼。按下command+option+L,打開開發(fā)人員工具,就能看到這個網(wǎng)頁的源碼了。我們要找的東西,就藏在這些亂七八糟的HTML代碼里。
如何從HTML源碼里找到我們想要的文章鏈接呢?
這要從HTML的結(jié)構(gòu)說起。HTML全稱超文本標(biāo)記語言,所謂標(biāo)記,就是說是它通過很多標(biāo)簽來描述一個網(wǎng)頁。你看到很多像以開始,以結(jié)束的標(biāo)志,就是標(biāo)簽。這些標(biāo)簽一般成對出現(xiàn),標(biāo)簽里面還可以套標(biāo)簽,表示一種層級關(guān)系。最外面的html標(biāo)簽是最大的,head、body次之,一層一層下來,最后才是一段文字,一個鏈接。你可以把它類比成一個人,這個人叫html,有head,有body,body上有hand,hand上面有finger。
扯遠(yuǎn)了,一些常用的標(biāo)簽:
1、<head>;。一個網(wǎng)頁的很多重要信息,都是在這里聲明的。比如說標(biāo)題,就是在<head>;下的<title>;里定義的。一個網(wǎng)頁用到的CSS樣式,可以在<head>;下的<style>;里定義。還有你寫的JavaScript代碼,也可以在<head>;下的<script>;里定義。
2、<body>;。它包含的東西就多了,基本上我們能看到的東西,一段文字,一張圖片,一個鏈接,都在這里面。比如說:
<p>;表示一個段落
<h1>;是一段文字的大標(biāo)題
<a>;表示一個鏈接
<img>;表示一張圖
<form>;是一個表單
<div>;是一個區(qū)塊
計算機(jī)是如何理解HTML的標(biāo)簽的呢?其實很簡單,它就是一棵樹。你可以把<html>;當(dāng)做樹根,從樹根上分出<head>;和<body>;,各個分支上又有新的分支,直到不能再分為止。這有點(diǎn)類似我們電腦上存放的文件。假設(shè)你有一本《21天學(xué)習(xí)C++》的電子書,存在D盤、study文件夾下的CS文件夾里。而study文件夾里除了CS文件夾,還有GRE、島國文化等目錄,代表著另一個分支體系。這也是一棵樹。樹上的每一片葉子,都有一條從根部可以到達(dá)的路徑,可以方便計算機(jī)去查找。
回到正題,有了這些基礎(chǔ)知識,我么再來看微信這個歷史消息頁面。從最外層的<html>;標(biāo)簽開始,一層一層展開,中間有<body>;、有<div>;、最后找到一個<a>;標(biāo)簽,標(biāo)簽里面的hrefs就是每篇文章的URL了。把這個URL復(fù)制下來,在新的TAB打開,確認(rèn)確實是文章的地址。
現(xiàn)在我們通過分析一個網(wǎng)頁的結(jié)構(gòu)、標(biāo)簽,找到了我們想要的文章URL,我們就可以寫爬蟲去模擬這個過程了。爬蟲拿到網(wǎng)頁之后,我們可以用正則表達(dá)式去查找這個<a>;標(biāo)簽,當(dāng)然,也可以用一些更高級的手段來找。
世界上80%的爬蟲是基于Python開發(fā)的,學(xué)好爬蟲技能,可為后續(xù)的大數(shù)據(jù)分析、挖掘、機(jī)器學(xué)習(xí)等提供重要的數(shù)據(jù)源。
什么是爬蟲?
網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
其實通俗的講就是通過程序去獲取web頁面上自己想要的數(shù)據(jù),也就是自動抓取數(shù)據(jù)
爬蟲可以做什么?
你可以用爬蟲爬圖片,爬取視頻等等你想要爬取的數(shù)據(jù),只要你能通過瀏覽器訪問的數(shù)據(jù)都可以通過爬蟲獲取。
用網(wǎng)絡(luò)爬蟲軟件來抓取,前嗅的ForeSpider數(shù)據(jù)采集軟件可以采集任何網(wǎng)站的公開數(shù)據(jù)。
ForeSpider數(shù)據(jù)采集軟件幾乎可以采集互聯(lián)網(wǎng)上所有公開的數(shù)據(jù),通過可視化的操作流程,從建表、過濾、采集到入庫一步到位。支持正則表達(dá)式操作,更有強(qiáng)大的面向?qū)ο蟮哪_本語言系統(tǒng)。
臺式機(jī)單機(jī)采集能力可達(dá)4000-8000萬,日采集能力超過500萬。服務(wù)器單機(jī)集群環(huán)境的采集能力可達(dá)8億-16億,日采集能力超過4000萬。
并行情況下可支撐百億以上規(guī)模數(shù)據(jù)鏈接,堪與百度等搜索引擎系統(tǒng)媲美。l 軟件特點(diǎn)一.通用性:可以抓取互聯(lián)網(wǎng)上幾乎100 %的數(shù)據(jù)1.支持?jǐn)?shù)據(jù)挖掘功能,挖掘全網(wǎng)數(shù)據(jù)。
2.支持用戶登錄。3.支持Cookie技術(shù)。
4.支持驗證碼識別。5.支持HTTPS安全協(xié)議。
6.支持OAuth認(rèn)證。7.支持POST請求。
8.支持搜索欄的關(guān)鍵詞搜索采集。9.支持JS動態(tài)生成頁面采集。
10.支持IP代理采集。11.支持圖片采集。
12.支持本地目錄采集。13.內(nèi)置面向?qū)ο蟮哪_本語言系統(tǒng),配置腳本可以采集幾乎100%的互聯(lián)網(wǎng)信息。
二.高質(zhì)量數(shù)據(jù):采集+挖掘+清洗+排重一步到位1.獨(dú)立知識產(chǎn)權(quán)JS引擎,精準(zhǔn)采集。2.集成數(shù)據(jù)挖掘功能,可以精確挖掘全網(wǎng)關(guān)鍵詞信息。
3.內(nèi)部集成數(shù)據(jù)庫,數(shù)據(jù)直接采集入庫,入庫前自動進(jìn)行兩次數(shù)據(jù)排重。4.內(nèi)部創(chuàng)建數(shù)據(jù)表結(jié)構(gòu),抓取數(shù)據(jù)后直接存入數(shù)據(jù)庫相應(yīng)字段。
5.根據(jù)dom結(jié)構(gòu)自動過濾無關(guān)信息。6.通過模板配置鏈接抽取和數(shù)據(jù)抽取,目標(biāo)網(wǎng)站的所有可見內(nèi)容均可采集,智能過濾無關(guān)信息。
7.采集前數(shù)據(jù)可預(yù)覽采集,隨時調(diào)整模板配置,提升數(shù)據(jù)精度和質(zhì)量。8.字段的數(shù)據(jù)支持多種處理方式。
9.支持正則表達(dá)式,精準(zhǔn)處理數(shù)據(jù)。10.支持腳本配置,精確處理字段的數(shù)據(jù)。
三.高性能:千萬級的采集速度1.C++編寫的爬蟲,具備絕佳采集性能。2.支持多線程采集。
3.臺式機(jī)單機(jī)采集能力可達(dá)4000-8000萬,日采集能力超過500萬。4.服務(wù)器單機(jī)集群環(huán)境的采集能力可達(dá)8億-16億,日采集能力超過4000萬。
5.并行情況下可支撐百億以上規(guī)模數(shù)據(jù)鏈接,堪與百度等搜索引擎系統(tǒng)媲美。6.軟件性能穩(wěn)健,穩(wěn)定性好。
四.簡易高效:節(jié)約70%的配置時間1.完全可視化的配置界面,操作流程順暢簡易。2.基本不需要計算機(jī)基礎(chǔ),代碼薄弱人員也可快速上手,降低操作門檻,節(jié)省企業(yè)爬蟲工程師成本。
3.過濾采集入庫一步到位,集成表結(jié)構(gòu)配置、鏈接過濾、字段取值、采集預(yù)覽、數(shù)據(jù)入庫。4.數(shù)據(jù)智能排重。
5.內(nèi)置瀏覽器,字段取值直接在瀏覽器上可視化定位。五. 數(shù)據(jù)管理:多次排重1. 內(nèi)置數(shù)據(jù)庫,數(shù)據(jù)采集完畢直接存儲入庫。
2. 在軟件內(nèi)部創(chuàng)建數(shù)據(jù)表和數(shù)據(jù)字段,直接關(guān)聯(lián)數(shù)據(jù)庫。3. 采集數(shù)據(jù)時配置數(shù)據(jù)模板,網(wǎng)頁數(shù)據(jù)直接存入對應(yīng)數(shù)據(jù)表的相應(yīng)字段。
4. 正式采集之前預(yù)覽采集結(jié)果,有問題及時修正配置。5. 數(shù)據(jù)表可導(dǎo)出為csv格式,在Excel工作表中瀏覽。
6. 數(shù)據(jù)可智能排除,二次清洗過濾。六. 智能:智能模擬用戶和瀏覽器行為1.智能模擬瀏覽器和用戶行為,突破反爬蟲限制。
2.自動抓取網(wǎng)頁的各類參數(shù)和下載過程的各類參數(shù)。3.支持動態(tài)IP代理加速,智能過濾無效IP代理,提升代理的利用效率和采集質(zhì)量。
4.支持動態(tài)調(diào)整數(shù)據(jù)抓取策略,多種策略讓您的數(shù)據(jù)無需重采,不再擔(dān)心漏采,數(shù)據(jù)采集更智能。5.自動定時采集。
6.設(shè)置采集任務(wù)條數(shù),自動停止采集。7.設(shè)置文件大小閾值,自動過濾超大文件。
8.自由設(shè)置瀏覽器是否加速,自動過濾頁面的flash等無關(guān)內(nèi)容。9.智能定位字段取值區(qū)域。
10.可以根據(jù)字符串特征自動定位取值區(qū)域。11.智能識別表格的多值,表格數(shù)據(jù)可以完美存入相應(yīng)字段。
七. 優(yōu)質(zhì)服務(wù)1.數(shù)據(jù)采集完全在本地進(jìn)行,保證數(shù)據(jù)安全性。2.提供大量免費(fèi)的各個網(wǎng)站配置模板在線下載,用戶可以自由導(dǎo)入導(dǎo)出。
3.免費(fèi)升級后續(xù)不斷開發(fā)的更多功能。4.為用戶提供各類高端定制化服務(wù),全方位來滿足用戶的數(shù)據(jù)需求。
看書是基礎(chǔ),除此之外還有學(xué)習(xí)路線,該怎么學(xué)習(xí),跟著路線來學(xué)的話,更加有效果。
第一階段—Python基礎(chǔ)準(zhǔn)備:本階段主要是學(xué)習(xí)Python零基礎(chǔ)入門學(xué)習(xí)視頻教程,html+css、javascript、jquery、python編程基礎(chǔ)、python初探等,讓你輕松入門python語言。
第二階段—Python Web開發(fā): 本階段是主要Python開發(fā)基礎(chǔ)知識的講解,通過系統(tǒng)學(xué)習(xí)mysql數(shù)據(jù)庫、django、ajax、Tornado入門、個人博客系統(tǒng)實戰(zhàn)等相關(guān)技術(shù),全面掌握python基礎(chǔ)開發(fā)技能技巧。
第三階段—Python擴(kuò)展開發(fā):本階段Python
開發(fā)進(jìn)階,主要是Python開發(fā)實戰(zhàn)講解,針對有一定Python開發(fā)基礎(chǔ)學(xué)員,從Tkinter桌面編程、Python開發(fā)跨平臺的記事本、編程實
戰(zhàn)、python爬蟲、論壇項目實戰(zhàn)等方面深入講解,讓學(xué)員快速精通python開發(fā)語言。
第四階段—Python開發(fā)選修:本節(jié)階段是Python開發(fā)的一個拓展講解,主要是Linux系統(tǒng)、Flask框架、redis框架、node.js框架、html5+css3等相關(guān)系統(tǒng)和框架及技術(shù)方面的結(jié)合使用學(xué)習(xí),讓精通python開發(fā)的你,技藝更加精湛。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:2.779秒