內(nèi)容概要:
最近自己學(xué)習(xí)了一些爬蟲旦部,學(xué)習(xí)之余,寫了一個新浪微博的爬蟲缕减。大規(guī)模爬數(shù)據(jù)沒有試過,但是爬取幾十萬應(yīng)該沒有什么問題芒珠。爬蟲爬取的站點是新浪移動端站點桥狡。github地址為:https://github.com/yz21606948/sinaSpider
第一次寫文章,難免有疏忽,大家共同交流裹芝,共同進步部逮。也請喜歡的朋友,在github上打個star
內(nèi)容分為三章嫂易,第一張介紹scrapy兄朋,第二張分析爬取網(wǎng)站,第三章分析代碼怜械。
Scrapy 介紹
scrapy 是一個為爬取網(wǎng)站數(shù)據(jù)颅和,提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。scrapy是一個非常強大且好用的爬蟲框架缕允,它不僅提供了一些開箱即用的基礎(chǔ)組件峡扩,還提供強大的自定義功能。
安裝Scrapy
最好使用conda安裝灼芭。我試過手動安裝有额,要安裝很多的依賴庫,會花費很長的時間彼绷。但是使用conda很快就能安裝好了巍佑。conda是一個管理Python的神器。
程序目錄介紹
scrapy startproject [yourproject] 命令將會創(chuàng)建一個scrapy項目寄悯。
scrapy.cfg 是項目的配置文件萤衰。
setting.py 用于設(shè)置請求的參數(shù),使用代理猜旬,爬蟲數(shù)據(jù)后文件保存等等脆栋。
/spider/sinaSpider.py 是爬蟲的主要代碼。
middlewares.py 是scrapy的請求/相應(yīng)相關(guān)處理的中間鍵洒擦。主要是UserAgent的輪換椿争,Cookies的輪換,代理的輪換等熟嫩。
items.py 是需要提取的數(shù)據(jù)結(jié)構(gòu)定義的文件
pipelines.py:是對items里面提取的數(shù)據(jù)做進一步處理秦踪,對mongdb的連接就在這里面。
下面是Scrapy官網(wǎng)提供的scrapy結(jié)構(gòu)圖掸茅,可以加深對scrapy的理解椅邓。
程序用到的其他庫或軟件
selenium: 一個用于Web應(yīng)用程序測試的工具。Selenium測試直接運行在瀏覽器中昧狮,就像真正的用戶在操作一樣景馁。我們使用selenium主要是模擬用戶的行為登錄微博,拿到cookies
PhantomJS是一個無界面的逗鸣,可腳本編程的WebKit瀏覽器引擎合住。它原生支持多種web標準:DOM操作绰精,CSS選擇器,JSON聊疲,Canavs等茬底。
參考:
1、《Python網(wǎng)絡(luò)數(shù)據(jù)采集》