爬蟲入門:Firefox 結合 Scrapy Shell 爬取網頁數據

image

閱讀本篇大概需要 4 分鐘亚享。

本來這篇是要接著之前 Python 基礎的咽块,但由于基礎講的太多,真的會很累欺税。所以先暫停一兩篇關于 Python 基礎的分享侈沪。這篇分享一些有意思的東西揭璃。

今天我在 Github 上創(chuàng)建了一個組織,名叫「SpiderMan

image

這個組織的目的是玩轉 Python 爬蟲亭罪,目前其中有一個項目就是昨天我提到的 “什么值得買” 這個平臺的爬蟲瘦馍。

目前有三個讀者聯系到我了,我初步了解了下有一個是爬蟲高手 A应役,另外兩個 B 和 C 是有一定 Python 基礎情组,但在爬蟲方面還是初次。不過我對他們都是同樣的看待箩祥,我們建了一個微信群他們有問題都會拋出來院崇。其次我也會去主動問他們某個知識點是否了解,比如今天要提到的 Scrapy Shell袍祖。除了剛才提到的 A 會底瓣, B 和 C 對這個只是聽到過。所以我就把這個知識點在這里安利下蕉陋。(當然濒持,有興趣加入組織的可以在后臺或者 Github Issues 里面聯系我)

Scrapy Shell 是什么?

你可以把這個理解為 Python 爬蟲的一個測試工具寺滚。提到爬蟲,我們最常見就是提取 HTML 中某個標簽下的數據屈雄,但在提取之前我們需要找到這個標簽位置村视,這個位置在學術上就是 XPath。

大家都知道 HTML 的頁面是 XML 格式的酒奶,在 XML 中需要定位到某個標簽的話就需要有個路徑蚁孔。所以你就可以把 XPath 理解為 XML 中某個標簽的路徑,比如從 html 標簽到 a 標簽的內容惋嚎。

舉個實際的簡單例子杠氢,我們來找找 “什么值得買” 官網頁面的 Logo 所在的 Xpath 路徑:

1.在 FireFox 中打開“什么值得買”的官網

image

2.在當前頁面點擊鼠標右鍵,并選中 “查看元素”

image

3.選中之后另伍,會展示如下界面鼻百,然后選中工具欄的左上角 箭頭按鈕,選中之后就可以用鼠標點擊頁面上的任意內容摆尝,比如我這里點擊 Logo

image

看到圖片最底部會出現一個路徑温艇,這就是 Logo 在 xml 中的路徑《楣可以看到 html->body......-> img 就是 這個 Logo 的 XPath勺爱。其中每個路徑主要分為三段,第一段是標簽名讯检,第二段 # 后面的是當前標簽的 id 琐鲁,第三段 . 后面的是標簽的 class 名卫旱。那么這個 XPath 就可以這么寫:

image

有了這個 Xpath,我們就可以通過寫 Python 的代碼去拿到這個標簽的數據围段,一般我們會用到 Scrapy 框架來做這件事顾翼。這篇文章暫不分享 Scrapy 框架,不了解的可以看

用 Scrapy 從零寫一個爬蟲蒜撮。

那么暴构,我們如何在不寫代碼的情況下去校驗這段 XPath 是否能拿到標簽數據呢?

這時候我們就需要用到 Scrapy Shell 來測試這個 XPath 路徑到底能不能拿到這個 Logo 圖片的地址段磨。

命令:

scrapy shell 'url 地址'
? /Users/xiyouMc > scrapy shell 'https://www.smzdm.com'>>> response.xpath('/html/body/header[@id="header"]/div[@id="global-search"]/div[@class="search-inner z-clearfix"]/h1[@id="logo"]/a/img/@src')[<Selector xpath='/html/body/header[@id="header"]/div[@id="global-search"]/div[@class="search-inner z-clearfix"]/h1[@id="logo"]/a/img/@src' data=u'https://res.smzdm.com/pc/v1.0/dist/img/a'>]

(看不清的取逾,可以在瀏覽器打開)

然后我們通過 reponse.xpath() 來拿到這個路徑下的標簽數據。不過這時候拿到的還是一個 Selector 對象,要拿到準確的數據我們在后面加上 extract()

>>> response.xpath('/html/body/header[@id="header"]/div[@id="global-search"]/div[@class="search-inner z-clearfix"]/h1[@id="logo"]/a/img/@src').extract()[u'https://res.smzdm.com/pc/v1.0/dist/img/activity/17double11/double11gif.gif']>>>

這樣我們就通過Scrapy Shell 來拿到了 XPath 的標簽數據苹支。當然砾隅,這只是爬蟲的第一步,不過這也算是爬蟲中最關鍵的一步债蜜。

預告下晴埂,下周我可能會在某天晚上直播一場從零開始的一個爬蟲項目,敬請期待寻定。


有興趣加入這個組織的可以加我微信 'mcx1469' 儒洛,也可以在我的 Github 倉庫的 Issues 中提一些,地址:

https://github.com/xiyouMc/SmzdmSpider

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末狼速,一起剝皮案震驚了整個濱河市琅锻,隨后出現的幾起案子,更是在濱河造成了極大的恐慌向胡,老刑警劉巖恼蓬,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異僵芹,居然都是意外死亡处硬,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門拇派,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荷辕,“玉大人,你說我怎么就攤上這事件豌⊥╇纾” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵苟径,是天一觀的道長案站。 經常有香客問我,道長,這世上最難降的妖魔是什么蟆盐? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任承边,我火速辦了婚禮,結果婚禮上石挂,老公的妹妹穿的比我還像新娘博助。我一直安慰自己,他們只是感情好痹愚,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布富岳。 她就那樣靜靜地躺著,像睡著了一般拯腮。 火紅的嫁衣襯著肌膚如雪窖式。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天动壤,我揣著相機與錄音萝喘,去河邊找鬼。 笑死琼懊,一個胖子當著我的面吹牛阁簸,可吹牛的內容都是我干的。 我是一名探鬼主播哼丈,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼启妹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了醉旦?” 一聲冷哼從身側響起翅溺,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎髓抑,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體优幸,經...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年网杆,在試婚紗的時候發(fā)現自己被綠了羹饰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡碳却,死狀恐怖,靈堂內的尸體忽然破棺而出昼浦,到底是詐尸還是另有隱情关噪,我是刑警寧澤建钥,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站熊经,受9級特大地震影響泽艘,放射性物質發(fā)生泄漏匹涮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一馋吗、第九天 我趴在偏房一處隱蔽的房頂上張望宅此。 院中可真熱鬧,春花似錦址貌、人聲如沸骂因。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽来农。三九已至,卻和暖如春崇堰,著一層夾襖步出監(jiān)牢的瞬間沃于,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工海诲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留繁莹,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓特幔,卻偏偏與公主長得像咨演,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚯斯,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內容