Python 爬蟲知識(shí)點(diǎn)

隨著大數(shù)據(jù)時(shí)代的來臨押袍,網(wǎng)絡(luò)爬蟲顯得越來越重要了匪蝙,互聯(lián)網(wǎng)中的數(shù)據(jù)是海量的祟印,如何高效獲取我們感興趣的信息是一個(gè)重要的問題温学。

爬蟲類型

通用網(wǎng)絡(luò)爬蟲:主要用于大型搜索引擎
比如用戶在百度搜索引擎上檢索對(duì)應(yīng)關(guān)鍵詞時(shí),百度將對(duì)關(guān)鍵詞進(jìn)行分析處理钙畔,從收錄的網(wǎng)頁中找出相關(guān)的再根據(jù)一定的排名規(guī)則進(jìn)行排序后展現(xiàn)給用戶茫陆,那么就需要盡可能多的互聯(lián)網(wǎng)的優(yōu)質(zhì)網(wǎng)頁

聚焦網(wǎng)絡(luò)爬蟲:也叫主題網(wǎng)絡(luò)爬蟲,爬取的目標(biāo)網(wǎng)頁定位在與主題相關(guān)的頁面中擎析,主要為某一類特定的人群提供服務(wù)簿盅,可以節(jié)省大量的服務(wù)器資源和帶寬資源
比如要獲取某一垂直領(lǐng)域的數(shù)據(jù)或有明確的檢索需求,此時(shí)需要過濾掉一些無用的信息

爬蟲的作用

市場分析:電商分析揍魂、商圈分析桨醋、一二級(jí)市場分析等

市場監(jiān)控:電商、新聞现斋、房源監(jiān)控等

商機(jī)發(fā)現(xiàn):招投標(biāo)情報(bào)發(fā)現(xiàn)喜最、客戶資料發(fā)掘、企業(yè)客戶發(fā)現(xiàn)等

網(wǎng)絡(luò)爬蟲.png

認(rèn)識(shí)網(wǎng)址的構(gòu)成

一般一個(gè)網(wǎng)站的網(wǎng)址=域名+自己編寫的頁面庄蹋,我們?cè)谠L問同一網(wǎng)站的網(wǎng)頁時(shí)瞬内,域名一般是不會(huì)改變的,因此我們爬蟲所需要解析的就是網(wǎng)站自己所編寫的不同頁面的入口url限书,只有解析出來各個(gè)頁面的入口虫蝶,才能開始爬蟲

了解網(wǎng)頁的兩種加載方法

  • 同步加載:會(huì)阻止瀏覽器的后續(xù)處理,停止了后續(xù)的文件的解析倦西,執(zhí)行能真,網(wǎng)頁的內(nèi)容(HTML、XML扰柠、圖像等等)舟陆、整理訊息(例如加入CSS等),然后輸出至顯示器或打印機(jī)耻矮,也就是常說的渲染引擎
    例如:www.itjuzi.com/company?page=1(改變page的值,網(wǎng)頁內(nèi)容會(huì)發(fā)生改變)
  • 異步加載:通過AJAX加載忆谓,改變網(wǎng)址上的參數(shù)不會(huì)使網(wǎng)頁發(fā)生改變裆装,瀏覽器在下載js的同時(shí),同時(shí)還會(huì)執(zhí)行后續(xù)的頁面處理倡缠,通過解析和執(zhí)行 javascript 來實(shí)現(xiàn)網(wǎng)頁的動(dòng)態(tài)效果哨免。
    通常情況非常耗時(shí)的處理,例如下載昙沦、處理圖片琢唾、大計(jì)算等,那么肯定需要異步加載盾饮,加載完成后同步顯示到列表中
    例如:www.lagou.com/gongsi/(翻頁后網(wǎng)址不會(huì)發(fā)生變化采桃,需要找規(guī)律)
    www.toutiao.com(通過鼠標(biāo)滑動(dòng)動(dòng)態(tài)加載內(nèi)容)

如何進(jìn)行區(qū)分懒熙?
1、修改設(shè)置普办,把JavaScript由“允許”改為“阻止”工扎,重新刷新頁面,若網(wǎng)頁正常加載衔蹲,說明該網(wǎng)頁的加載方式是同步加載肢娘,否則就是異步加載
2、網(wǎng)站右擊查看網(wǎng)頁源代碼
(1)通常同步加載的數(shù)據(jù)能直接在網(wǎng)頁源代碼中查看到舆驶,異步加載的數(shù)據(jù)是看不到的
如:網(wǎng)易音樂橱健、知乎的Python精華板塊
(2)或者數(shù)據(jù)能找到但是雜亂無章的,無法通過解析工具將它匹配出來
如:知乎網(wǎng)站“輪子哥——vczh”

查看源碼無規(guī)律.png

認(rèn)識(shí)網(wǎng)頁源碼的構(gòu)成

網(wǎng)頁右擊查看源代碼沙廉,一般由三個(gè)部分組成拘荡,分別是:

  • html:描述網(wǎng)頁的內(nèi)容結(jié)構(gòu)(網(wǎng)頁骨架)
  • css:描述網(wǎng)頁的排版布局
  • JavaScript:動(dòng)態(tài)執(zhí)行語言,描述網(wǎng)頁的事件處理蓝仲,即鼠標(biāo)或鍵盤在網(wǎng)頁元素上的動(dòng)作后的程序
網(wǎng)頁代碼與瀏覽器展示的信息.png

查看網(wǎng)頁請(qǐng)求

以chrome瀏覽器為例俱病,在網(wǎng)頁上點(diǎn)擊鼠標(biāo)右鍵,檢查(或者F12)袱结,選擇Network亮隙,選擇一個(gè)鏈接
請(qǐng)求頭(Request Headers)信息詳解:


圖片.png

響應(yīng)頭(Response Headers)信息詳解:


圖片.png

理解網(wǎng)頁請(qǐng)求過程

從瀏覽器輸入網(wǎng)址、回車后垢夹,到用戶看到網(wǎng)頁內(nèi)容溢吻,經(jīng)過的步驟如下:
(1)dns解析,獲取ip地址果元;
(2)建立TCP連接促王,3次握手;
(3)發(fā)送HTTP請(qǐng)求報(bào)文而晒;
(4)服務(wù)器接收請(qǐng)求并作處理蝇狼;
(5)服務(wù)器發(fā)送HTTP響應(yīng)報(bào)文;
(6)斷開TCP連接倡怎,4次握手迅耘。

TCP連接與斷開.png

通用的網(wǎng)絡(luò)爬蟲框架

1、挑選種子URL监署;
2颤专、將這些URL放入待抓取的URL隊(duì)列;
3钠乏、取出待抓取的URL栖秕,下載并存儲(chǔ)進(jìn)已下載網(wǎng)頁庫中。此外晓避,將這些URL放入待抓取URL隊(duì)列簇捍,從而進(jìn)入下一循環(huán)只壳;
4、分析已抓取隊(duì)列中的URL垦写,并且將URL放入待抓取URL隊(duì)列吕世,從而進(jìn)入下一循環(huán)。


圖片.png

爬蟲三步走

1梯投、獲取數(shù)據(jù):Requests(第三方庫)命辖、Urllib
2、解析數(shù)據(jù):BeautifulSoup4分蓖、Xpath尔艇、正則表達(dá)式

  • 正則表達(dá)式使用比較困難,學(xué)習(xí)成本較高

  • BeautifulSoup性能較慢么鹤,相對(duì)于Xpath較難终娃,在某些特定場景下有用

  • Xpath使用簡單,速度快(Xpath是lxml里面的一種)蒸甜,是抓取數(shù)據(jù)最好的選擇


    解析數(shù)據(jù).png

3棠耕、保存數(shù)據(jù):Pandas庫

  • 本地(csv、xls)
  • 數(shù)據(jù)庫(Mysql柠新、MongoDB)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窍荧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恨憎,更是在濱河造成了極大的恐慌蕊退,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔恳,死亡現(xiàn)場離奇詭異瓤荔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钥组,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門输硝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人程梦,你說我怎么就攤上這事腔丧。” “怎么了作烟?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長砾医。 經(jīng)常有香客問我拿撩,道長,這世上最難降的妖魔是什么如蚜? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任压恒,我火速辦了婚禮影暴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘探赫。我一直安慰自己型宙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布伦吠。 她就那樣靜靜地躺著妆兑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪毛仪。 梳的紋絲不亂的頭發(fā)上搁嗓,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音箱靴,去河邊找鬼腺逛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衡怀,可吹牛的內(nèi)容都是我干的棍矛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抛杨,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼够委!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝶桶,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤慨绳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后真竖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脐雪,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年恢共,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了战秋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讨韭,死狀恐怖脂信,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情透硝,我是刑警寧澤狰闪,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站濒生,受9級(jí)特大地震影響埋泵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一丽声、第九天 我趴在偏房一處隱蔽的房頂上張望礁蔗。 院中可真熱鬧,春花似錦雁社、人聲如沸浴井。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽磺浙。三九已至,卻和暖如春喊巍,著一層夾襖步出監(jiān)牢的瞬間屠缭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工崭参, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呵曹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓何暮,卻偏偏與公主長得像奄喂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子海洼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理跨新,服務(wù)發(fā)現(xiàn),斷路器坏逢,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 33款可用來抓數(shù)據(jù)的開源爬蟲軟件工具 要玩大數(shù)據(jù)域帐,沒有數(shù)據(jù)怎么玩?這里推薦一些33款開源爬蟲軟件給大家是整。 爬蟲肖揣,即...
    visiontry閱讀 7,318評(píng)論 1 99
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,079評(píng)論 25 707
  • 【茂春草】品牌故事 茂:茂盛,繁茂浮入,旺盛的生命力龙优。 春:眾多植物新生命的開始,北方植物渡過冬眠期后事秀,煥然生長的新起...
    圝天龍科技圝閱讀 381評(píng)論 0 0
  • 洋滌閱讀 114評(píng)論 0 1