Scrapy爬蟲框架入門教程(1)——爬取廖雪峰老師的博客
在你看這個教程的時候,默認你已經基本掌握了python3的語法,不求會寫,但是至少你能看懂。為了蹭個熱度,特意選了python圈裡非常著名的廖雪峰老師的博客作為爬蟲對象。廖老師,你博客每天的訪問量那麼高,也不差讓我們這些萌新練練爬蟲了吧。
運行環境:
window10 x64系統
python3.6
pycharm
anaconda
scrapy
安裝好以上環境、包之後,打開cmd,輸入scrapy startproject liaoxuefeng,出現以下提示後,就說明你已經成功創建一個scrapy的新項目:
在該項目的根目錄下,文件夾形式如下:liaoxuefeng/n scrapy.cfgn liaoxuefeng/n __init__.pyn items.pyn pipelines.pyn settings.pyn spiders/n __init__.pyn ...n
開始編寫爬蟲的第一個代碼!打開liaoxuefeng/liaoxuefeng/spiders,創建一個新文件liaoxuefeng.py,寫入如下代碼:
import scrapynnnclass LiaoxuefengSpider(scrapy.Spider):n # 這裡是將爬蟲定義為scrapy.Spider這個類下的一個實例。n # Spider這個類定義了爬蟲的很多基本功能,我們直接實例化就好,n # 省卻了很多重寫方法的麻煩。n name = lxfn #這是爬蟲的名字,這個非常重要。n start_urls = [http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000]n #這是爬蟲開始幹活的地址,必須是一個可迭代對象。nn def parse(self, response):n #爬蟲收到上面的地址後,就會發送requests請求,在收到伺服器返回的內容後,就將內容傳遞給parse函數。在這裡我們重寫函數,達到我們想要的功能。n titles = response.xpath("//ul[@class=uk-nav uk-nav-side]//a/text()").extract()n #這是廖雪峰老師python教程的標題列表。我們利用xpath解析器對收到的response進行分析,從而提取出我們需要的數據。//XXX表示任何任何目錄下的XXX區塊,/XXX表示子目錄下的XXX區塊,XXX[@class=abc]表示帶有class=abc屬性值的XXX區塊,/text()表示獲取該區塊的文本。最後加上.extract()表示將內容提取出來。n for title in titles:n print (title)n #這個沒什麼說的了,直接遍歷,然後列印標題。n
然後進入cmd,在項目的根目錄下運行scrapy crawl lxf(這個lxf就是剛才liaoxuefeng.py文件中的name欄位,千萬不要弄錯了),運行成功,將列印當頁所有的目錄名稱:
最簡單的爬蟲就寫到這裡。也許你有地方沒看懂,也許我講的不夠詳細,歡迎留言提問、建議,更歡迎高手指教!我的全部文章:
Scrapy爬蟲框架入門教程(1)——爬取廖雪峰老師的博客
用python寫爬蟲,爬取清純妹子網站(requests/lxml)
Python入門——針對零基礎學習者的資料推薦
歡迎加QQ群:613081176,純技術交流,杜絕廣告、刷屏、機器人
點個贊再收藏呀,親!現在點贊1000+,收藏突破2000+,真有點無語哎!
歡迎關注微信訂閱號:python程序員之路介紹python最新的功能、模塊,詳解實用代碼。主要針對python的初級和中級愛好者。更新頻率不會太高,絕不推送廣告。有我在,成長的路上不會孤單!
想轉載的話請聯繫作者,謝謝!
推薦閱讀:
※開啟知乎收藏夾看圖模式
※從零開始寫Python爬蟲 --- 爬蟲應用:今天吃什麼?
※4行Python代碼獲取所在城市天氣預報