Python爬蟲筆記(4):利用scrapy爬取豆瓣電影250

在網(wǎng)上閱讀有關(guān)scrapy的教程也有一段時間了独旷,可是一直沒能真正寫出能爬出數(shù)據(jù)的代碼音榜。望几。邓夕。今天趁著有點時間,趕快實戰(zhàn)一下吧顷链!

目標(biāo):豆瓣電影250

為啥選它呢目代,因為網(wǎng)上有關(guān)爬取豆瓣電影的教程多呀,可以很容易的復(fù)刻他人的代碼嗤练,少走彎路榛了。
可是,可是煞抬,萬萬沒想到的是霜大,這次的寫爬蟲過程中我?guī)缀醢涯懿鹊目尤葌€遍,菜鳥的煩惱~ 革答。~
同時我也明白了战坤,人家的以前寫的代碼曙强,擱到現(xiàn)在未必全部適用。

先把寫的流程過一下途茫,然后在慢慢填坑碟嘴。

至于詳細(xì)的教程可以參考scrapy中文網(wǎng)

  1. 首先,打開cmd囊卜,切換到你希望的路徑中娜扇,啟動項目
scrapy startproject douban
  1. 打開pycharm,找到所在的項目的文件夾并打開栅组,如圖


    圖1.png
  2. 在items.py填寫代碼如下
import scrapy


class DoubanItem(scrapy.Item):
    ranking = scrapy.Field() # 排名
    name = scrapy.Field() #電影名稱
    score = scrapy.Field() #得分
    people_mun = scrapy.Field() #評價人數(shù)
    introduction = scrapy.Field() #電影簡介
  1. 在spiders文件夾下創(chuàng)建douban_spider.py文件雀瓢,然后填寫代碼如下
import scrapy
from douban.items import DoubanItem


class DoubanSpiderSpider(scrapy.Spider):
    name = 'douban_spider' #定義爬蟲的名字
    start_urls = ['https://movie.douban.com/top250?start=0&filter='] #爬取的起始頁

#定義解析函數(shù),用來解析返回的response對象
    def parse(self, response):
        #用xpath選擇器提取數(shù)據(jù)
        infos = response.xpath("http://ol[@class='grid_view']/li")
        for info in infos:
            ranking = info.xpath(".//div[@class='pic']/em/text()").get()
            name = info.xpath(".//div[@class='hd']/a/span[1]/text()").get()
            score = info.xpath(".//div[@class='star']/span[2]/text()").get()
            people_mun = info.xpath(".//div[@class='star']/span[4]/text()").get()
            introduction = info.xpath(".//p[@class='quote']/span/text()").get()
            item = DoubanItem(ranking=ranking, name=name, score=score, people_mun=people_mun, introduction=introduction)
            yield item
        next_url = response.xpath("http://span[@class='next']/a/@href").get() #獲取下一頁鏈接

        if not next_url:
            return
        else:
            next_url = 'https://movie.douban.com/top250'+next_url #將獲取的下一頁鏈接拼接完整
            yield scrapy.Request(next_url, callback=self.parse) #將提取的URL返回給解析函數(shù)
  1. 最后在所在項目的文件夾下運行power shell玉掸,輸入如下
scrapy crawl douban_spider -o douban.csv

scrapy就會自動將提取的數(shù)據(jù)保存到CSV文件當(dāng)中去刃麸。

可是現(xiàn)實往往沒有那么美好,下面就是我開始填坑的辛苦路程了司浪。嫌蚤。。

  • 首先断傲,返回的是403還是什么的,弄得我一臉懵逼智政,什么鬼认罩,網(wǎng)不好嗎?
    突然間续捂,我靈光一閃垦垂,憑著那僅有的一丟丟經(jīng)驗,headers浮現(xiàn)在了腦海當(dāng)中牙瓢。
    headers是放在哪里的劫拗?settings.py!
  • 好了終于有數(shù)據(jù)了矾克!心里一陣激動页慷,mmp,怎么只有前25條電影數(shù)據(jù)胁附?
    眼尖的我發(fā)現(xiàn)了這個
    圖2.png

    還好我看過scrapy中文網(wǎng)中的采花大盜教程酒繁,跟著在Middleware中設(shè)置一遍
 def process_request(self, request, spider):
        referer = request.url
        if referer:
            request.headers['Referer'] = referer

然后再在settings里面啟動middleware


圖3.png

但是應(yīng)該打開的是紅箭頭所示的,而不是綠箭頭的控妻,這又是一個坑州袒,自己沒動腦子就踩上去了。弓候。郎哭。

  • 其實除了這些還有很多磕磕絆絆呢他匪,像是我沒有拼接next_url,start_url設(shè)置成了‘https://movie.douban.com/top250’夸研,自作聰明的添加了allowed_domains導(dǎo)致爬取出錯邦蜜。。陈惰。都是淚啊~~~

最后貼上第一個scrapy爬到的成果吧


圖4.png

作為一個全靠自己摸索前進(jìn)的菜鳥的學(xué)習(xí)之路畦徘,就是一個踩坑填坑的過程,但是當(dāng)你踩的坑多了抬闯,那說明井辆,你浪費的時間也就多了! _ !

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市溶握,隨后出現(xiàn)的幾起案子杯缺,更是在濱河造成了極大的恐慌,老刑警劉巖睡榆,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萍肆,死亡現(xiàn)場離奇詭異,居然都是意外死亡胀屿,警方通過查閱死者的電腦和手機(jī)塘揣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宿崭,“玉大人亲铡,你說我怎么就攤上這事∑隙遥” “怎么了奖蔓?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長讹堤。 經(jīng)常有香客問我吆鹤,道長,這世上最難降的妖魔是什么洲守? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任疑务,我火速辦了婚禮,結(jié)果婚禮上梗醇,老公的妹妹穿的比我還像新娘暑始。我一直安慰自己,他們只是感情好婴削,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布廊镜。 她就那樣靜靜地躺著,像睡著了一般唉俗。 火紅的嫁衣襯著肌膚如雪嗤朴。 梳的紋絲不亂的頭發(fā)上配椭,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音雹姊,去河邊找鬼股缸。 笑死,一個胖子當(dāng)著我的面吹牛吱雏,可吹牛的內(nèi)容都是我干的敦姻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼歧杏,長吁一口氣:“原來是場噩夢啊……” “哼镰惦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起犬绒,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤旺入,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凯力,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茵瘾,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年咐鹤,在試婚紗的時候發(fā)現(xiàn)自己被綠了拗秘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡祈惶,死狀恐怖聘殖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情行瑞,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布餐禁,位于F島的核電站血久,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏帮非。R本人自食惡果不足惜氧吐,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望末盔。 院中可真熱鬧筑舅,春花似錦、人聲如沸陨舱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽游盲。三九已至误墓,卻和暖如春蛮粮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谜慌。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工然想, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欣范。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓变泄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恼琼。 傳聞我的和親對象是個殘疾皇子妨蛹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349