python爬蟲一

一? 什么是爬蟲?

? ??網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛描滔,網(wǎng)絡(luò)機(jī)器人), 是一種按照一定的規(guī)則圆存,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本仇哆。

通俗的講: 就是模擬客戶端發(fā)起網(wǎng)絡(luò)請(qǐng)求沦辙,接收請(qǐng)求的響應(yīng),按照一定的規(guī)則讹剔,自動(dòng)的抓取互聯(lián)網(wǎng)信息的程序油讯。

原則上只要瀏覽器能夠做的事情,爬蟲都能夠?qū)崿F(xiàn)

二??關(guān)于Python爬蟲沈跨,我們需要學(xué)習(xí)掌握的基本知識(shí)有:

????Python基礎(chǔ)語法學(xué)習(xí)(基礎(chǔ)知識(shí))

靜態(tài)頁面兔综,動(dòng)態(tài)頁面HTML頁面源碼的獲取(數(shù)據(jù)抓热沓邸)

HTML頁面的(非結(jié)構(gòu)化)數(shù)據(jù)提取,結(jié)構(gòu)化數(shù)據(jù)的提榷Э鳌(數(shù)據(jù)提取)

數(shù)據(jù)提取的持久化(文本戴已、數(shù)據(jù)庫(kù))

Scrapy框架以及scrapy-redis分布式策略(第三方框架)

爬蟲(Spider)糖儡、反爬蟲(Anti-Spider)休玩、反反爬蟲(Anti-Anti-Spider)之間的斗爭(zhēng)....

三??爬蟲的基本流程

? ? ? ? ? ? 1.分析網(wǎng)站,得到目標(biāo)url

   2.根據(jù)url,發(fā)起請(qǐng)求,獲取頁面的HTML源碼

   3.從頁面源碼中提取數(shù)據(jù)

     a.提取到目標(biāo)數(shù)據(jù),做數(shù)據(jù)的賽選和持久化存儲(chǔ)

     b.從頁面中提取到新的url地址,繼續(xù)執(zhí)行第二部操作

   4.爬蟲結(jié)束:所有的目標(biāo)url都提取完畢,并且得到數(shù)據(jù)了,再也沒有其他請(qǐng)求任務(wù)了,這是意味著爬蟲結(jié)束


四 urllib模塊的使用

???????????????urllib庫(kù)的基本使用 所謂網(wǎng)頁抓取呐矾,就是把URL地址中指定的網(wǎng)絡(luò)資源從網(wǎng)絡(luò)流中讀取出來蜒犯,保存到本地荞膘。 在Python中有很多庫(kù)可以用來抓取網(wǎng)頁羽资,我們先學(xué)習(xí)urllib。?? ??????

我們會(huì)從下面三個(gè)方面講解urllib:

????request: 它是最基本的HTTP請(qǐng)求模塊,可以用來模擬發(fā)送請(qǐng)求狭郑,就像在瀏覽器中輸入網(wǎng)址汇在,然后敲擊回車鍵一樣,使用的時(shí)候只需要給庫(kù)方法傳入相關(guān)的URL和相關(guān)的參數(shù)即可.

????error: 異常處理模塊糕殉,如果出現(xiàn)請(qǐng)求錯(cuò)誤,我們可以使用這個(gè)模塊來捕獲異常雳锋,然后進(jìn)行重試或者其他操作赡磅,保證程序不會(huì)意外終止.

????parse: 這是一個(gè)工具模塊宝与,提供了許多url的處理方法,比如拆分,解析,合并等等.

? ? ?


五? requests模塊的使用

? ? ? ? ? ?Requests: 讓 HTTP 服務(wù)人類

????????????雖然Python的標(biāo)準(zhǔn)庫(kù)中 urllib 模塊已經(jīng)包含了平常我們使用的大多數(shù)功能习劫,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 "HTTP for Humans"袒餐,說明使用更簡(jiǎn)潔方便谤狡。

????????????Requests 唯一的一個(gè)非轉(zhuǎn)基因的 Python HTTP 庫(kù),人類可以安全享用:)

????????????Requests 繼承了urllib的所有特性墓懂。Requests支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話匕积,支持文件上傳榜跌,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國(guó)際化的URL和 POST 數(shù)據(jù)自動(dòng)編碼钓葫。

????????????requests 的底層實(shí)現(xiàn)其實(shí)就是 urllib

????????????Requests的文檔非常完備,中文文檔也相當(dāng)不錯(cuò)笼吟。Requests能完全滿足當(dāng)前網(wǎng)絡(luò)的需求,支持Python 2.6--3.5贷帮,而且能在PyPy下完美運(yùn)行撵枢。


六? 正則表達(dá)式

? ??????正則表達(dá)式概述:正則表達(dá)式,又稱正規(guī)表示式锄禽、正規(guī)表示法、正規(guī)表達(dá)式磁滚、規(guī)則表達(dá)式宵晚、常規(guī)表示法(英語:Regular Expression,在代碼中常簡(jiǎn)寫為regex淤刃、regexp或RE),是計(jì)算機(jī)科學(xué)的一個(gè)概念陨仅。正則表達(dá)式使用單個(gè)字符串來描述铝侵、匹配一系列匹配某個(gè)句法規(guī)則的字符串。在很多文本編輯器里咪鲜,正則表達(dá)式通常被用來檢索嗜诀、替換那些匹配某個(gè)模式的文本。

????????Regular Expression的“Regular”一般被譯為“正則”隆敢、“正規(guī)”、“常規(guī)”穴墅。此處的“Regular”即是“規(guī)則”、“規(guī)律”的意思玄货,Regular Expression即“描述某種規(guī)則的表達(dá)式”之意。

????????目的 給定一個(gè)正則表達(dá)式和另一個(gè)字符串夹界,我們可以達(dá)到如下的目的:

????????????????給定的字符串是否符合正則表達(dá)式的過濾邏輯(稱作“匹配”);

????????????????可以通過正則表達(dá)式可柿,從字符串中獲取我們想要的特定部分复斥。

? ??

? ? 正則表達(dá)式的使用:

? ??????????在 Python 中,我們可以使用內(nèi)置的 re 模塊來使用正則表達(dá)式痢虹。 有一點(diǎn)需要特別注意的是世分,正則表達(dá)式使用 對(duì)特殊字符進(jìn)行轉(zhuǎn)義,所以如果我們要使用原始字符串臀玄,只需加一個(gè) r 前綴健无,示例: re 模塊的一般使用步驟如下:

????????????使用 compile() 函數(shù)將正則表達(dá)式的字符串形式編譯為一個(gè) Pattern 對(duì)象

? ? ? ? ? ? 通過 Pattern 對(duì)象提供的一系列方法對(duì)文本進(jìn)行匹配查找累贤,獲得匹配結(jié)果臼膏,一個(gè) Match 對(duì)象渗磅。

????????????最后使用 Match 對(duì)象提供的屬性和方法獲得信息始鱼,根據(jù)需要進(jìn)行其他的操作


七? XPath選擇器

????????????XPath (XML Path Language) 是一門在 XML 文檔中查找信息的語言起暮,可用來在 XML 文檔中對(duì)元素和屬性進(jìn)行遍歷鞋怀。? ??????

? ??????????XPath 開發(fā)工具 1.開源的XPath表達(dá)式編輯工具:XMLQuire(XML格式文件可用) 2.Chrome插件 XPath Helper 3.Firefox插件 XPath Checker

????????????選取節(jié)點(diǎn) XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集密似。這些路徑表達(dá)式和我們?cè)诔R?guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似残腌。


? ??????????

















?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孩灯,一起剝皮案震驚了整個(gè)濱河市峰档,隨后出現(xiàn)的幾起案子讥巡,更是在濱河造成了極大的恐慌欢顷,老刑警劉巖抬驴,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豌拙,死亡現(xiàn)場(chǎng)離奇詭異鳖链,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堪簿,“玉大人,你說我怎么就攤上這事蛾魄〉涡耄” “怎么了痛侍?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)岂膳。 經(jīng)常有香客問我,道長(zhǎng)涧偷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任除呵,我火速辦了婚禮颜曾,結(jié)果婚禮上泛豪,老公的妹妹穿的比我還像新娘诡曙。我一直安慰自己价卤,他們只是感情好荠雕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盖文,像睡著了一般。 火紅的嫁衣襯著肌膚如雪龄恋。 梳的紋絲不亂的頭發(fā)上它碎,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音挖息,去河邊找鬼套腹。 笑死电禀,一個(gè)胖子當(dāng)著我的面吹牛鞭呕,可吹牛的內(nèi)容都是我干的葫松。 我是一名探鬼主播腋么,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼圣勒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了扛稽?” 一聲冷哼從身側(cè)響起在张,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瘟斜,沒想到半個(gè)月后哼转,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹蔓,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡披摄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寓盗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傀蚌。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖库继,靈堂內(nèi)的尸體忽然破棺而出艺谆,到底是詐尸還是另有隱情擂涛,我是刑警寧澤聊记,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布排监,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏挨队。R本人自食惡果不足惜盛垦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一蔬充、第九天 我趴在偏房一處隱蔽的房頂上張望班利。 院中可真熱鬧罗标,春花似錦闯割、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澳化。三九已至缎谷,卻和暖如春列林,著一層夾襖步出監(jiān)牢的瞬間希痴,已是汗流浹背砌创。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甲献,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓锥累,卻偏偏與公主長(zhǎng)得像桶略,于是被迫代替她去往敵國(guó)和親际歼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹅心,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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