<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Scrapy爬取網易云音樂和評論(二、Scrapy框架每個模塊的作用)

      教程系列鏈接目錄:

      1、Scrapy爬取網易云音樂和評論(一、思路分析)
      2、Scrapy爬取網易云音樂和評論(二、Scrapy框架每個模塊的作用)
      3、Scrapy爬取網易云音樂和評論(三、爬取歌手)
      4、Scrapy爬取網易云音樂和評論(四、關于API)
      5、Scrapy爬取網易云音樂和評論(五、評論)

      項目GitHub地址:https://github.com/sujiujiu/WYYScrapy

      關于如何建立一個scrapy程序,可以參考這兩篇文章:
      1、http://cuiqingcai.com/3472.html(創建的時候推薦)
      2、http://www.rzrgm.cn/wuxl360/p/5567631.html

      關于使用mongodb,可以參考:http://www.jianshu.com/p/30408d8ad1c0

      另外,這篇原來是發在CSDN上的,后來不允許寫爬取類的東西,修改的時候被屏蔽了,這里是遷移過來的,要復制代碼可以去我GitHub

      一、建立的命令:

      scrapy startproject + 你的項目名        
      

      第一篇文章有提到兩個比較特別且有用的地方:
      1、image.png

      解釋一下:execute里面的三個字符串連起來它其實就是最后執行scrapy程序的命令。這個文件的好處是,倘若你在使用編輯器,比如sublime,是可以在配置后直接執行的,而不用打開DOS窗口,如果你在sublime里直接執行scrapy本身的任何一個文件,它都不會執行成功,而只能執行這個entrypoint.py,名字應該隨意吧,無所謂。

      另一點請參考以下的第三部分

      二、框架結構

      現在整個框架的結構是這樣的:
      image.png

      當然,這個spiders文件夾下的WangYiYun.py并不是自動生成的,這個需要我們自己建立,這個文件就是主爬蟲程序。另外,這個腳本的名字建議不要取和項目名同名,否則后面可能會踩坑。以下簡稱WYY.py,大家最好將這個文件名改成這個,省得出錯,我因為已經生成了,改了出錯。解決辦法是:在代碼除編碼外的首行加上:

      from __future__ import absolute_import
      
      • entrypoint.py:執行程序,就想象是run/python xx.py
      • items.py:如果你學過orm的話,會很好的理解它,它相當于數據庫的字段。
      • middlewares.py:這個是個中間件,起初我也不知道它是做什么的,因為并沒有用到。且很多例子上顯示的結構沒有它,基本上我們也不會改到它。很久之后無意在B站看到一個Scrapy的教學視頻,才了解到如果需要用到代理池,可以在里面做處理。
      • pipelines.py:這個就是定義存儲的文件,比如連接,使用哪個數據庫存儲。
      • settings.py:一看就知道,是配置文件。

      三、關于setting配置:

      1、關于調試

      上面的原因和配置解釋的很清楚,參考http://cuiqingcai.com/3472.html:

      2、關于spidername和robots.txt
      image.png
      BOT_NAME很重要,在WYY.py文件里寫腳本的時候,繼承自scrapy.Spider的這個類,它需要有一個name,而這兩者必須同名。
      image.png

      最下面那行的ROBOTSTXT_OBEY,大家知道爬蟲繞不開robots.txt這個文件,每個網站都會有這個網站,是必須遵守的一個守則吧,就是有些不讓你爬,有些又允許你爬。默認是True,如果失敗了,可以嘗試將其注釋,然后復制一行,改為False。
      settings.py文件里大多都是寫好的,你只要將它復制,取消注釋,然后修改即可,最好不要不復制直接在原文上改,萬一改到了什么出了錯,還能有個參照物。

      3、關于headers
      image.png
      重要的一般就是Referer、User-Agent(這個必須要有)、Accept(可選,但是涉及到xhr,即json文件,就要修改了)。
      這里將它注釋,改成自己的,你也可以寫在主爬蟲WYY.py文件里另寫,比較自由,寫在這里算是一個基本配置吧。

      4、關于ITEM_PIPELINES
      image.png

      這個是啟用一個Item Pipeline組件,數字代表優先級,越小越優先,沒有注釋的那行是我的,而下面還有一行,是我之前在網上看過的一種寫法,但是并不能成功,它應當是一個字典,列表不行

      5、關于mongodb配置
      隨便寫在哪,我們就寫在剛剛ITEM_PIPELINES的后面
      image.png
      這里順便建議,常量都用大寫。
      HOST是本地,PORT是端口,DBNAME是數據庫,WYY。
      接下來四個是集合了,相當于table,這個順序是倒序。
      1、MONGODB_COL_ARTIST - > ArtistInfo -> 所有的歌手列表
      2、MONGODB_COL_ALBUMLIST - >AlbumListInfo - > 每個歌手的所有專輯列表
      3、MONGODB_COL_ALBUM - >AlbumInfo - > 每張專輯內的所有歌曲列表
      4、MONGODB_COL_SONG - > SongInfo -> 每首歌曲的信息

      四、關于items.py

      它就相當于SQL/MySQL里的字段,它沒有什么特別的字段類型,反正所有都是scrapy.Field()就可以了,
      image.png
      另外三個集合同樣,每個單獨寫個類,依照你們自己的需求定字段即可。

      五、關于pinelines.py

      image.png

      切記,要記得導入items里的那幾個你定義的字段的類,我之前忘了導入,然后一切程序正常,就死活存不進去,也不報錯,差點掉坑里走不出來

      然后這個WangyiyunPipeline基本就兩塊,一個初始化__init__(),一個process_item(),前者是用來連接的,后者是用來存儲的。
      可以看到我有一些注釋,這里說明一下,因為涉及到多個集合存儲,一開始真不知道怎么弄,一開始我以為把每個都扔__init__就成了,然后通過self調用,后來發現不行,在__init__定義一個集合就可以了。process_item()還是參考剛剛那個GitHub那個項目,才知道通過isinstance判斷。

      image.png
      isinstance大家知道什么意思吧,然后每個item對應的什么在注釋我也寫了。另外,我下面還有一些被注釋掉的代碼部分,這里就是我在最開頭說的,想要跳過一些重復的地方,但是跳過之后不知道做什么處理。

      在不用框架的時候,我們存Mongodb。是先定義一個空字典,然后賦值,最后insert,這里也是一樣的,只不過,我們是將傳入的item給dict化。

      而后面,在不使用默認的集合時,重新賦一個取代之前的artist即可。

      接下來我們開始正式寫代碼了。

      posted @ 2021-10-06 17:49  蘇酒酒  閱讀(475)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 吉安市| 亚洲国产大片永久免费看| 成人亚欧欧美激情在线观看 | 狠狠色综合播放一区二区| 婷婷久久香蕉五月综合加勒比| 国产乱码精品一区二三区| 国产人与禽zoz0性伦多活几年 | 临武县| 亚洲中文无码永久免费| 久久天天躁夜夜躁一区| 中文字幕日韩国产精品| 国产高清一区二区三区视频| 人妻va精品va欧美va| 一本大道av人久久综合| 日韩人妻无码一区二区三区99 | 亚洲国产成人资源在线| 亚洲美女少妇偷拍萌白酱| 亚洲av专区一区| 精品日本免费一区二区三区| 北岛玲亚洲一区二区三区| 亚洲国产成人极品综合| 国产高清av首播原创麻豆| 无码人妻丰满熟妇啪啪网不卡| 亚洲AV无码不卡在线播放| 亚洲精品无码久久一线| 国产超碰无码最新上传| 色欲国产精品一区成人精品| 国产高清自产拍av在线| 国产视频一区二区三区麻豆 | 日韩 欧美 亚洲 一区二区| 日本亚洲色大成网站www久久 | 国产无遮挡猛进猛出免费软件| 99午夜精品亚洲一区二区| 亚洲精品国产电影| 国产成人精品区一区二区| 极品人妻少妇一区二区| 被灌满精子的少妇视频| 亚洲国产中文字幕精品| 泰来县| 国产午夜精品一区二区三| 日本一区二区三本视频在线观看|