Scrapy1.4.0之抓取58同城房源詳解(一)

目標(biāo):抓取房源name、price、url

我們采用Scrapy框架幻梯,并用Pyquery解析


廢話(huà)不多說(shuō),先上結(jié)果努释、步驟與代碼:

步驟:

進(jìn)入工作目錄后碘梢,建立一個(gè)爬蟲(chóng)工程:在命令行輸入?scrapy startproject City_58

使用cd City_58進(jìn)入項(xiàng)目目錄

在工程中產(chǎn)生一個(gè)scrapy爬蟲(chóng):在命令行輸入scrapy genspider City_58_test 58.com

訪(fǎng)問(wèn)58同城網(wǎng)站,打開(kāi)開(kāi)發(fā)者工具伐蒂,查看elements

查找含有目標(biāo)信息的元素煞躬,提取目標(biāo)網(wǎng)頁(yè)的url,填入新建的Scrapy項(xiàng)目中Spider文件下的start_url中逸邦,并編寫(xiě)Spider

編寫(xiě)Items(用于定義需要爬取的字段)和Pipeline(處理Item)兩個(gè)文件恩沛,以及修改setting文件(啟動(dòng)管道),創(chuàng)建main文件

運(yùn)行main文件缕减,啟動(dòng)Scrapy爬蟲(chóng)

代碼如下:

Citems.py:定義我們所要爬取的信息的相關(guān)屬性雷客,此例中需要爬取的是name、price桥狡、url

City_58_test.py:主要是用于定義請(qǐng)求鏈接搅裙,并使用pyquery選取目標(biāo)元素

pipeline.py:當(dāng)item數(shù)據(jù)被city58_test爬蟲(chóng)爬取好并返回給引擎以后,引擎會(huì)把item交給City58Pipeline這個(gè)管道處理裹芝。這個(gè)pipeline文件負(fù)責(zé)打開(kāi)關(guān)閉文件部逮,并寫(xiě)入文件

settings.py:開(kāi)啟City58Pipeline管道與robots協(xié)議

main.py:運(yùn)行爬蟲(chóng)

各文件詳情:

items.py

Items

Item使用簡(jiǎn)單的class定義語(yǔ)法以及Field對(duì)象來(lái)聲明

Item 對(duì)象是種簡(jiǎn)單的容器,保存了爬取到得數(shù)據(jù)

City_58_test.py

這個(gè)一個(gè)基本的scrapy的spider的model嫂易,首先我們要導(dǎo)入Scrapy.spiders中的Spider類(lèi)兄朋,以及items.py中我們剛剛定義好的 City58Item

接著創(chuàng)建我們自己的爬蟲(chóng)類(lèi)City58TestSpider并繼承Spider類(lèi)(父與子的關(guān)系)(其他爬蟲(chóng)類(lèi)的使用可以去參考官方文檔

name

定義spider名字的(string)。spider的名字定義了Scrapy如何定位(并初始化)spider怜械,name是spider最重要的屬性颅和,所以其必須是唯一的傅事。(區(qū)別于City_58)

allowed_domains

可選。包含了spider允許爬取的域名(domain)列表(list)峡扩。 當(dāng) OffsiteMiddleware 啟用時(shí)蹭越, 域名不在列表中的URL不會(huì)被跟進(jìn)

start_urls

URL列表。當(dāng)沒(méi)有制定特定的URL時(shí)有额,spider將從該列表中開(kāi)始進(jìn)行爬取般又。 因此,第一個(gè)被獲取到的頁(yè)面的URL將是該列表之一巍佑。 后續(xù)的URL將會(huì)從獲取到的數(shù)據(jù)中提取茴迁。

parse(response)

parse 負(fù)責(zé)處理response并返回處理的數(shù)據(jù)以及跟進(jìn)的UR

pipeline.py

添加__init__方法,管道事件第一次執(zhí)行時(shí)萤衰,創(chuàng)建58.csv文件堕义,并打開(kāi)

修改process_item方法,將City58TestSpider中獲得的item數(shù)據(jù)存到demo.json文件中

添加colse_spider方法脆栋,管道事件結(jié)束時(shí)倦卖,關(guān)閉文件

settings.py

取消ITEM_PIPELINES的的注釋?zhuān)擁?xiàng)定義了管道的優(yōu)先級(jí),數(shù)值越小優(yōu)先級(jí)越高

修改ROBOTSTXT_OBEY為false椿争,避免某些網(wǎng)站禁止爬蟲(chóng)導(dǎo)致不能爬取數(shù)據(jù)

main.py

這文件需自己創(chuàng)建

City_58_Test乃爬蟲(chóng)名(區(qū)別項(xiàng)目名與爬蟲(chóng)名)

總結(jié):

剛學(xué)習(xí)scrapy怕膛,不用太糾結(jié)于細(xì)節(jié),最好先明白各文件之間的邏輯

這里用到很多類(lèi)與函數(shù)的語(yǔ)法秦踪,不明白處褐捻,可先看上篇文章哦

Pyquery也是一個(gè)易學(xué)且強(qiáng)大的解析神器,直接pip install pyquery安裝

近來(lái)課程設(shè)計(jì)與畢業(yè)設(shè)計(jì)的準(zhǔn)備花費(fèi)了很多時(shí)間椅邓,很久沒(méi)有更新柠逞,還望大家諒解

有不清楚的地方,大家可以留言景馁,點(diǎn)贊板壮,我看到了,會(huì)第一時(shí)間回復(fù)你

本系列文章同步跟新于微信公眾號(hào):工科男雷先生合住。知乎:雷之

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绰精,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聊疲,更是在濱河造成了極大的恐慌茬底,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获洲,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡殿如,警方通過(guò)查閱死者的電腦和手機(jī)贡珊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)最爬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人门岔,你說(shuō)我怎么就攤上這事爱致。” “怎么了寒随?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵糠悯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我妻往,道長(zhǎng)互艾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任讯泣,我火速辦了婚禮纫普,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘好渠。我一直安慰自己昨稼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拳锚。 她就那樣靜靜地躺著假栓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霍掺。 梳的紋絲不亂的頭發(fā)上匾荆,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音抗楔,去河邊找鬼棋凳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛连躏,可吹牛的內(nèi)容都是我干的剩岳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼入热,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拍棕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起勺良,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绰播,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尚困,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蠢箩,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谬泌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滔韵。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖掌实,靈堂內(nèi)的尸體忽然破棺而出陪蜻,到底是詐尸還是另有隱情,我是刑警寧澤贱鼻,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布宴卖,位于F島的核電站,受9級(jí)特大地震影響邻悬,放射性物質(zhì)發(fā)生泄漏症昏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一拘悦、第九天 我趴在偏房一處隱蔽的房頂上張望齿兔。 院中可真熱鬧,春花似錦础米、人聲如沸分苇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)医寿。三九已至,卻和暖如春蘑斧,著一層夾襖步出監(jiān)牢的瞬間靖秩,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工竖瘾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沟突,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓捕传,卻偏偏與公主長(zhǎng)得像惠拭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庸论,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲(chóng)模...
    陳思煜閱讀 12,702評(píng)論 4 46
  • scrapy是python最有名的爬蟲(chóng)框架之一职辅,可以很方便的進(jìn)行web抓取,并且提供了很強(qiáng)的定制型聂示,這里記錄簡(jiǎn)單學(xué)...
    bomo閱讀 2,121評(píng)論 1 11
  • 這里推薦使用VisualStudioCode, 感覺(jué)還不錯(cuò) 本博文將帶領(lǐng)你從入門(mén)到精通爬蟲(chóng)框架Scrapy域携,最終具...
    rosekissyou閱讀 401評(píng)論 0 0
  • 昨天放辦公室有道云筆記的小匣子里忘了拿出來(lái)。 5分鐘起飛 我老是會(huì)焦慮鱼喉,我要做的事情很多秀鞭,怎么去兼顧趋观。上完班要去健...
    謝小可要努力努力努力努力閱讀 117評(píng)論 0 2
  • 一個(gè)人漫步 渾濁的空氣里 大腦沉抑 沉甸甸的思緒 看燈光走過(guò) 在熟悉的街道 有雪或沒(méi)雪的日子 夜色中 燈光斑駁了樹(shù)...
    晉麒閱讀 312評(píng)論 0 0