python爬虫-初步使用Scrapy分布式爬虫(爬取mcbbs整合包保存名称及主要mod),大爱MC
生活随笔
收集整理的這篇文章主要介紹了
python爬虫-初步使用Scrapy分布式爬虫(爬取mcbbs整合包保存名称及主要mod),大爱MC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 首先介紹一下scrapy。
- Scrapy一個開源和協作的框架,是為了頁面抓取所設計的,使用它可以快速、簡單、可擴展(通過中間件)的方式從網站中提取所需的數據。
- 工作流程如下
- ?Scrapy Engine是scrapy的核心,負責數據流的管理。Spiders(爬蟲)發出Requests請求,請求經由Scrapy Engine傳遞給Scheduler(調度器),Scheduler通過Downloader Middlewares(下載器中間件)傳遞Requests給Downloader(下載器),Downloader根據Requests從網絡上下載數據,并給出結果Responses(這是爬取內容的結果),隨后Downloader通過Spider Middlewares(爬蟲中間件)將Response交給Spiders分析,Spiders分析得到Items交給Item Pipeline(管道)。
- 這里的Spider和Item Pipeline根據用戶需求自行編寫。(中間件也可以自行編寫)
- 具體返回值設計可以參照官方中文文檔:http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
?
?
- 圖片來自官方參考文檔。
- 本次測試為爬取mcbbs整合包模塊的帖子列表,并且獲取每個帖子的鏈接,訪問該鏈接頁面并且獲得主要內容標簽內的文本,以“標題? : 主要mod”存入txt文本文件。
- 創建項目,mcbbs。
- conda activate spider :激活一個python虛擬環境叫做spider,且spider這個虛擬環境目錄下已經安裝了scrapy。如何創建虛擬解釋器環境,并且安裝scrapy參見我的博客 :https://blog.csdn.net/zhouchen1998/article/details/81382006
- 創建成功后在對應位置生成項目文件夾,用pycharm打開,文件結構如下:
- 其中PackSpider為自定義爬蟲。
- 1.首先,設置settings.py。
- 設置延時之類的,生成的文件里都有但是注釋了,改過來就OK。
?
- 2.完成Item書寫。
- 因為我要保存帖子名稱和主要mod內容,名稱獲取頁面元素就ok,但是主要mod則是通過獲得元素的鏈接進入帖子獲取主要內容,并且保存,所以item設計如下。
- items.py
?
import scrapyclass McbbsItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()link_url = scrapy.Field()dir_name = scrapy.Field()dir_content = scrapy.Field()- 3.寫你的爬蟲PackSpider.py(這里看清結構和繼承)
- 自定義爬蟲必須繼承Spider
- 因為項目簡單,不詳細注釋了。
?
- 4.完成pipelines.py,數據落地。
- 5.注意,如果你用的pycharm來項目編輯,那么必須給一個入口模塊。同時scrapy是異步的爬取順序不是輸入順序。
- main.py
- 其中mc_pack就是spider里面定義的name。
- ?運行結果
總結
以上是生活随笔為你收集整理的python爬虫-初步使用Scrapy分布式爬虫(爬取mcbbs整合包保存名称及主要mod),大爱MC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫-利用代理ip访问网页(
- 下一篇: Windows下Anaconda3安装及