python爬蟲筆記:開始前的準備

前言

好久不見略水,Python基礎系列完結也有段時間了森瘪,希望幫到了大家。
從今天開始我將開始更新一個新的系列:Python爬蟲學習筆記吵血。
如你所見谎替,本系列并不是復雜完備的教程,主要還是和大家一起分享我在學習Python爬蟲的一些想法以及知識總結蹋辅。
如果你已經(jīng)看完了我之前的Python基礎系列文章钱贯,對Python的基本語法有了一定的概念,那么可能我接下來要開始寫的東西可能會對你熟練運用Python有所幫助侦另。

Python爬蟲基礎知識

1. 爬蟲的基本概念

爬蟲是一類用于信息搜集的程序秩命,主要用于在一個或多個網(wǎng)頁中爬取數(shù)據(jù)并進行保存、分類褒傅、分析等操作弃锐,目前最大的爬蟲應該是各類搜索引擎,搜索引擎的實現(xiàn)原理簡單來說就是他們部署了很多24小時不停掃描公網(wǎng)網(wǎng)站信息的大型爬蟲程序殿托,這些程序將爬取到的數(shù)據(jù)分類整理存儲到數(shù)據(jù)數(shù)據(jù)庫中霹菊,然后通過網(wǎng)站前端頁面顯示出網(wǎng)站標題、簡介之類的信息碌尔,并提供了這些網(wǎng)站的網(wǎng)址讓用戶可以通過點擊直接訪問某一個網(wǎng)站浇辜。


image.png

個人其實基本沒有那種需要爬全網(wǎng)之類的需求,所以爬蟲的體量一般也比較小唾戚,大多是實現(xiàn)一些自動搶票柳洋、自動發(fā)帖、自動獲取信息之類的功能叹坦。
比如我現(xiàn)在需要一張北京到鄭州的火車票熊镣,一直買不到,沒得辦法只能時不時刷新一下網(wǎng)頁看有沒有余票,但是人工刷新很難有那么好的運氣能刷绪囱,所以這個時候就需要用到爬蟲模擬人工测蹲,幾秒鐘刷新一次然后監(jiān)控余票數(shù)值是否發(fā)生了變化。


image.png

把爬蟲放到服務器上24小時不間斷運行鬼吵,有票時這個字符會變?yōu)閿?shù)值或“有”扣甲,這樣就能第一時間通知你去搶票了。很多搶票軟件的原理其實就是這樣齿椅,沒什么黑科技琉挖,就是讓爬蟲時刻檢測是否有票。

2. 網(wǎng)頁基礎

我們在瀏覽器訪問的每一個頁面背后其實都是成千上萬行的代碼所組成的涣脚,而想要一個動態(tài)網(wǎng)站跑起來需要涉及到很多技術示辈,有負責頁面展示布局的html,css和動態(tài)交互的JavaScript、負責動態(tài)處理用戶請求的后端開發(fā)語言(PHP/Java/python/golang)遣蚀、數(shù)據(jù)庫技術矾麻、web服務器軟件等等。
在學習爬蟲時芭梯,我們經(jīng)常接觸的主要還是html和JavaScript险耀。不過我還是建議你能夠花一點時間去了解一下動態(tài)網(wǎng)頁搭建的基礎知識,這對于之后的爬蟲學習會有很大幫助粥帚。
網(wǎng)站的布局代碼是開放的胰耗,也就是每個用戶通過一些操作都可以看到一個網(wǎng)站的布局代碼∶⑽校基本上所有的瀏覽器都會提供查看網(wǎng)頁源代碼功能柴灯,一般情況下快捷鍵為crtrl+u按下之后可以看到網(wǎng)頁的源代碼了


image.png

由于太長了所以只截了局部,這些代碼最終形成的效果是這樣的


image.png

瀏覽器的作用就是將這些代碼解析為相應的樣式费尽,前端開發(fā)者在實際開發(fā)過程中往往是寫了一個樣式之后就需要通過瀏覽器實時預覽效果赠群,并通過工具進行調整,在瀏覽器中按下f12旱幼,即可調出開發(fā)者工具查描。
image.png

點擊這個小箭頭讓它處于激活狀態(tài)后在原網(wǎng)頁中用鼠標選擇一個元素,即可快速定位到這個元素在源代碼中的位置以及顯示CSS樣式信息柏卤。
如果暫時實在看不懂這些代碼也沒有關系冬三,如果將一個網(wǎng)頁看作是一個機器人的話

那么html(超文本編輯語言)代碼即為機器人的零部件


image.png

而CSS(層疊樣式表)則為組裝圖紙
image.png

JavaScript讓這個機器人可以自動擺臂或者旋轉。
(如果看到這還有女孩子缘缚,建議將機器人換為閃耀暖暖里的娃娃勾笆,零部件就是衣服,javaScript負責改變哇娃娃的動作和表情)

爬蟲目標

一般來說寫一個爬蟲之前需要先明確:
1. 目標網(wǎng)站
2. 數(shù)據(jù)內(nèi)容
3. 是否合法
首先需要確定自己想要爬取哪個網(wǎng)站的什么數(shù)據(jù)桥滨,然后很重要的一點大部分的網(wǎng)站并不歡迎爬蟲窝爪,有一些較為隱私的目錄弛车、數(shù)據(jù)會明確告訴告訴你不能爬取。
關于這個爬取范圍蒲每,首要根據(jù)就是robots協(xié)議纷跛,這個協(xié)議簡單來說就是在網(wǎng)頁的根目錄下定義一個robots.txt文件,里面定義了哪些屬于可爬取的公開數(shù)據(jù)邀杏,哪些是網(wǎng)站禁止爬取的目錄或文件


上圖為百度根目錄下robots.txt文件內(nèi)容贫奠,其中還根據(jù)不同的搜索引擎進行了限制,凡是disallow后的目錄均為非公開頁面淮阐。
一旦爬蟲違反了這個協(xié)議叮阅,那么網(wǎng)站就有充分理由提出司法訴訟刁品。
就像老師提前告訴你交白卷會掛科泣特,你就迎著頭皮交白卷,老師肯定饒不了你挑随。
image

另外状您,即使沒有違背robots協(xié)議,如果你的爬蟲運行時對網(wǎng)站造成了惡劣影響兜挨,比如訪問太過于頻繁導致網(wǎng)頁崩了或者影響了其他正常用戶的使用膏孟,又或者對網(wǎng)站造成了經(jīng)濟損失(比如將數(shù)據(jù)賣給競爭對手),網(wǎng)站都是可以申請送你一堆紫金手鐲的拌汇。


image.png

到時候可就是Python爬蟲入門失敗柒桑,入獄成功了。

爬蟲的簡單工作流程

從上面的搶票例子也可以看得出來噪舀,爬蟲的工作流程其實和人瀏覽網(wǎng)頁基本是一樣的魁淳,都是打開網(wǎng)頁,找到對應元素与倡,判斷元素是否發(fā)生了變化或者是保存某些數(shù)據(jù)界逛。
不同的人在看的時候存儲數(shù)據(jù)用的是小腦瓜,程序用的是硬盤纺座。
還有一個不同點在于程序并不在意這個網(wǎng)頁長什么樣息拜,很明顯他們都是直男,只會在網(wǎng)頁的源代碼中找自己需要的東西净响。
所以爬蟲的簡單工作流程是這樣的:

  1. 訪問網(wǎng)頁獲取源代碼
  2. 分析源代碼獲取指定數(shù)據(jù)
  3. 操作數(shù)據(jù)或執(zhí)行其他命令

你看少欺,爬蟲做的最多的其實是對獲取到的源代碼進行分析,只不過它并不能理解代碼馋贤,只是把這些源代碼當作是一個比較長的字符串困肩。
對字符串進行操作就是我們之前在Python基礎里面講過叮喳,所以不用害怕,爬蟲也可以很簡單。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市分唾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖仁讨,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異实昨,居然都是意外死亡洞豁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門荒给,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丈挟,“玉大人,你說我怎么就攤上這事志电∈镅剩” “怎么了?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵挑辆,是天一觀的道長例朱。 經(jīng)常有香客問我,道長鱼蝉,這世上最難降的妖魔是什么洒嗤? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮魁亦,結果婚禮上渔隶,老公的妹妹穿的比我還像新娘。我一直安慰自己洁奈,他們只是感情好间唉,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著睬魂,像睡著了一般终吼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氯哮,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天际跪,我揣著相機與錄音,去河邊找鬼喉钢。 笑死姆打,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的肠虽。 我是一名探鬼主播幔戏,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼税课!你這毒婦竟也來了闲延?” 一聲冷哼從身側響起痊剖,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垒玲,沒想到半個月后陆馁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡合愈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年叮贩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佛析。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡益老,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寸莫,到底是詐尸還是另有隱情捺萌,我是刑警寧澤,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布储狭,位于F島的核電站互婿,受9級特大地震影響,放射性物質發(fā)生泄漏辽狈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一呛牲、第九天 我趴在偏房一處隱蔽的房頂上張望刮萌。 院中可真熱鬧,春花似錦娘扩、人聲如沸着茸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涮阔。三九已至,卻和暖如春灰殴,著一層夾襖步出監(jiān)牢的瞬間敬特,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工牺陶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伟阔,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓掰伸,卻偏偏與公主長得像皱炉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子狮鸭,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

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