【Scrapy】走進成熟的爬蟲框架

2021-03-06 書圈

前幾天有小夥伴留言說能不能介紹推薦一下爬蟲框架,我給他推薦了Scrapy,本來想偷個懶,推薦他去看官方文檔,裡面有一些demo代碼可供學習測試。結果收到回覆說文檔中演示用到的網站已經無法訪問了。所以只能自己來簡單寫一下了,也算是自己一個學習記錄。

定義介紹我也不複製粘貼了。簡單來說,Scrapy是一個中大型的爬蟲框架,框架的意義就在於幫你預設好了很多可以用的東西,讓你可以從複雜的數據流和底層控制中抽離出來,專心於頁面的解析即可完成中大項目爬蟲,甚至是分布式爬蟲。

但是爬蟲入門是不推薦直接從框架入手的,直接從框架入手會讓你頭暈目眩,覺得哪兒哪兒都看不懂,有點類似於還沒學會基礎的遣詞造句就直接套用模板寫成文章,自然是十分吃力的。所以還是推薦大家有一定的手寫爬蟲基礎再深入了解框架。(當然還沒有入門爬蟲的同學…可以催更我的爬蟲入門文章…)

Python的版本選擇之前提過,推薦大家全面擁抱Python 3.x。

很久以前,大概是我剛入門學習Scrapy時,Scrapy還沒有支持Python 3.x,那時一部分爬蟲工程師把Scrapy不支持Python 3.x作為不進行遷移的理由。當然了,那時更具體的原因是Scrapy所依賴的twisted和mitmproxy不支持Python 3.x。

先安裝Python

這次我們以本地環境來進行安裝(Windows+Anaconda),由於Python的跨平臺特性,我們本地寫的代碼可以很容易遷移到別的電腦或伺服器使用。(當然了,從規範使用的角度上推薦大家使用單獨的env,或者直接使用docker或者vagrant,不過那就說來話長了…以後可以考慮單獨介紹)

按照慣例,我們直接使用 pip install scrapy 進行安裝。

具體的錯誤原因…缺少Microsoft Visual C++ 14.0…你也可以自己通過其他渠道解決,當然我們最推薦的做法是直接使用 conda install scrapy 命令(前提是你安裝了Anaconda而非普通Python)。

如果遇到寫入權限錯誤,請用管理員模式運行cmd。

之後我們可以寫一個很小的demo,依然是官方案例中的DMOZ,DMOZ網站是一個著名的開放式分類目錄(Open DirectoryProject),原版的DMOZ已於去年的3月17日停止了運營,目前網站處於403狀態。但是網上大量過去的教程都是以DMOZ為案例的。我為大家找到了原DMOZ網站的靜態鏡像站,大家可以直接訪問 http://dmoztools.net/

大家按照官方文檔的步驟繼續做就可以了,後續的問題不大。

(http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html)

需要注意的就是工作目錄問題。

啟動Scrapy項目。

scrapy startproject tutorial

進入目錄,我們可以看到自動生成的一些文件,這些文件就是scrapy框架所需要的最基礎的組織結構。

scrapy.cfg: 項目的配置文件

tutorial/: 該項目的python模塊。之後您將在此加入代碼。

tutorial/items.py: 項目中的item文件.

tutorial/pipelines.py: 項目中的pipelines文件.

tutorial/settings.py: 項目的設置文件.

tutorial/spiders/: 放置spider代碼的目錄.

-END-

相關焦點

  • scrapy爬蟲框架的運用
    # scrapy# 爬蟲框架- 框架- 爬蟲框架- scrapy- pyspider- crawley- scrapy框架介紹- https://doc.scrapy.org/en/latest/- http://scrapy-chs.readthedocs.io
  • 使用Scrapy網絡爬蟲框架小試牛刀
    前言這次咱們來玩一個在Python中很牛叉的爬蟲框架——Scrapy。scrapy 介紹標準介紹Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,非常出名,非常強悍。所謂的框架就是一個已經被集成了各種功能(高性能異步下載,隊列,分布式,解析,持久化等)的具有很強通用性的項目模板。
  • Scrapy爬蟲框架結構介紹(各部分組件功能,常用命令)
    Python之srcapy介紹Scrapy是一個健壯的爬蟲框架,可以從網站中提取需要的數據。是一個快速、簡單、並且可擴展的方法。Scrapy使用了異步網絡框架來處理網絡通訊,可以獲得較快的下載速度,因此,我們不需要去自己實現異步框架。並且,Scrapy包含了各種中間件接口,可以靈活的完成各種需求。
  • python scrapy框架爬蟲當當網
    最近在複習scrapy框架,就隨便找了個網站做了一下爬蟲,當當網,說實話這種網站還是比較好做爬蟲的,我沒加代理,也沒限速,沒寫多線程,就直接搞下來了,
  • python爬蟲-- Scrapy入門
    前言轉行做python程式設計師已經有三個月了,這三個月用Scrapy爬蟲框架寫了兩百多個爬蟲,不能說精通了Scrapy,但是已經對Scrapy有了一定的熟悉
  • Python之初識Scrapy框架
    今天帶大家了解下 Scrapy 框架,先解答三個問題:什麼是 Scrapy 框架呢?它有什麼作用呢?為什麼需要使用它?Scrapy 是一個寫好的框架,不用重複造輪子,scapy 底層是異步框架 twisted ,吞吐量高,並發是最大優勢。Scrapy 安裝我電腦上同時裝了 py2 和 py3,在 py3 環境裡安裝 Scrapy,使用以下命令。
  • Python程式語言:如何建立爬蟲框架
    建立爬蟲框架,首先學習scrapy爬蟲框架!這個爬蟲框架是一個快速且功能強大的網絡爬蟲框架!scrapy爬蟲框架安裝如下:在Windows平臺上,以管理員身份運行cmd,執行pip install scrapy 進行安裝這個框架,安裝好了之後,進行檢測一下,執行scrapy —h就好了!
  • 網絡爬蟲框架Scrapy詳解之Request
    介紹Request類是一個http請求的類,對於爬蟲而言是一個很重要的類在Spider中通常用法:yield scrapy.Request(url = 'zarten.com')類屬性和方法有:urlmethodheadersbodymetacopy()replace([url, method, headers
  • 大數據開發神器——Scrapy Spider框架
    說到Python,估計很多同學跟我一樣都是從學習Python的爬蟲開始的。當然你可以使用lxml、BeautifulSoup、Request等第三方庫來編寫自己的爬蟲。但是當需要爬取海量數據,特別是大數據的實際應用中,若自己編寫爬蟲,是一件特別困難的事情。
  • 第7天|10天搞定Python網絡爬蟲,Scrapy爬更快
    7.1 Scrapy的核心Scrapy吸引人的地方在於它是一個框架,任何人都可以根據需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持.
  • 神一般的Scrapy框架,Python中Scrap的基本結構和去重原理
    1.scrapy的基本結構(五個部分都是什麼,請求發出去的整個流程)2.scrapy的去重原理(指紋去重到底是什麼原理)看來大家都發現了標題中Scrapy掉了一個y,以後小編會改正的,謝謝大家的提醒一、Scrapy
  • Python爬蟲推薦用什麼框架呢?
    那麼,Python爬蟲一般用什麼框架比較好呢?一般來講,只有在遇到比較大型的需求時,才會使用Python爬蟲框架。這樣的做的主要目的,是為了方便管理以及擴展。本文神龍代理IP將向大家推薦十個Python爬蟲框架。
  • 小叮噹高級爬蟲(二):Scrapy創建項目「五部曲」獲取豆瓣電影信息
    當然是不用,下面,小叮噹就為大家分享,如何使用Python中的Scrapy框架,來獲取豆瓣的電影信息。還不了解Scrapy的夥伴們,可以去看下「小叮噹高級爬蟲(一):爬蟲利器Scrapy」。>定義items.py文件內容,明確將要爬取的目標(4)使用命令創建爬蟲文件在系統生成的Scrapy項目的」spiders「文件夾下使用命令:scrapy genspider
  • 小白程式設計師-運用Scrapy-splash爬取動態js頁面
    Scapy框架相關的內容,這裡不在搬磚,官方給出的中文文檔,已經足夠詳盡清晰。Scrapy框架上手非常簡單,跟著教程一步步走就可以了,爬取一些靜態資源是毫無問題的,但現如今,大部分網站為了封禁爬蟲,都會採取一些防爬策略,最典型的是通過ajax動態渲染界面,以爬取圖片為例,網頁用js加載圖片使得scrapy.request url時獲得的response中不暴露圖片url,而是一大段js函數,為解決這個問題,可以結合使用Python scrapy-splash
  • Python爬蟲的名詞有什麼意義?
    在上一篇文章當中學記給大家展示了 Scrapy 爬蟲框架在爬取之前的框架文件該如何設置。在上一篇文章當中,是直接以代碼的形式進行描述的,在這篇文章當中學記會解釋一下上一篇文章當中爬蟲代碼當中的一些名詞的用法。
  • 爬蟲大殺器 | Python學習之Scrapy-Redis實戰京東圖書
    redis-based components for scrapyscrapy-Redis就是結合了分布式資料庫redis,重寫了scrapy一些比較關鍵的代碼,將scrapy變成一個可以在多個主機上同時運行的分布式爬蟲。
  • Scrapy源碼剖析:Scrapy是如何運行起來的?
    scrapy 命令從哪來?當我們基於 Scrapy 寫好一個爬蟲後,想要把我們的爬蟲運行起來,怎麼做?非常簡單,只需要執行以下命令就可以了。 scrapy crawl <spider_name>通過這個命令,我們的爬蟲就真正開始工作了。那麼從命令行到執行爬蟲邏輯,這個過程中到底發生了什麼?
  • scrapy爬蟲如何穿越表單,採集你想要的數據
    我們用scrapy來建立一個爬蟲項目。首先我們來分析一下網站的機制,輸入用戶名密碼,這肯定是你事先申請好的,然後點擊登錄,看Network登錄反應,如圖所示,FormData裡面很清楚的看到了,登錄接口的URL,表單數據,從那個頁面登錄,登錄名,密碼,把它都複製下來。
  • 簡單講解價值1K的Python爬蟲外包案例
    往期推薦 本篇文章就使用三種爬蟲模式爬取相關數據 1、常規爬取數據 2、多線程爬取數據 3、scrapy框架爬取數據 基本開發環境
  • Python新手學習網絡爬蟲要做什麼?
    傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,再不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。我們自學一段時間Python後想要學習網絡爬蟲,需要做些什麼嗎?Python網絡爬蟲學習,不需要你深入學習html,只要知道掌握它常用的簡單標籤跟知識點就行。