您好,登錄后才能下訂單哦!
Python爬蟲——Scrapy,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Scrapy Engine(引擎):Scrapy框架的核心部分。負責在Spider和ItemPipeline、Downloader、Scheduler中間通信、傳遞數據等。
Spider(爬蟲):發送需要爬取的鏈接給引擎,最后引擎把其他模塊請求回來的數據再發送給爬蟲,爬蟲就去解析想要的數據。這個部分是我們開發者自己寫的,因為要爬取哪些鏈接,頁面中的哪些數據是我們需要的,都是由程序員自己決定。
Scheduler(調度器):負責接收引擎發送過來的請求,并按照一定的方式進行排列和整理,負責調度請求的順序等。
Downloader(下載器):負責接收引擎傳過來的下載請求,然后去網絡上下載對應的數據再交還給引擎。
Item Pipeline(管道):負責將Spider(爬蟲)傳遞過來的數據進行保存。具體保存在哪里,應該看開發者自己的需求。
Downloader Middlewares(下載中間件):可以擴展下載器和引擎之間通信功能的中間件。
Spider Middlewares(Spider中間件):可以擴展引擎和爬蟲之間通信功能的中間件。
####macOS 環境
需要安裝c語言的編譯環境
xcode-select --install
安裝Scrapy
pip3 install Scrapy
scrapy startproject xxx(項目名稱)
scrapy startproject firstProjectNew Scrapy project 'firstProject', using template directory '/usr/local/lib/python3.6/site-packages/scrapy/templates/project', created in: /Users/baxiang/Documents/Python/Scrapy/firstProjectYou can start your first spider with: cd firstProject scrapy genspider example example.com
.├── firstProject│ ├── __init__.py│ ├── __pycache__│ ├── items.py│ ├── middlewares.py│ ├── pipelines.py│ ├── settings.py│ └── spiders│ ├── __init__.py│ └── __pycache__└── scrapy.cfg
items.py:用來存放爬蟲爬取下來數據的模型。
middlewares.py:用來存放各種中間件的文件。
pipelines.py:用來將items的模型存儲到本地磁盤中。
settings.py:爬蟲的一些配置信息(比如請求頭、多久發送一次請求、ip代理池等)。
scrapy.cfg:項目的配置文件
spiders包:所有的爬蟲代碼都存放到這個里面
####Items.py
定義需要抓取并需要后期處理的數據
####settings.py
文件設置scapy,其中兩個地方是建議設置的。
ROBOTSTXT_OBEY設置為False。默認是True。即遵守機器協議,那么在爬蟲的時候,scrapy首先去找robots.txt文件,如果沒有找到。則直接停止爬取。
DEFAULT_REQUEST_HEADERS添加User-Agent。這個也是告訴服務器,我這個請求是一個正常的請求,不是一個爬蟲。
用于存放后期數據處理的功能。
創建news.py文件內容
name:這個爬蟲的名字,名字必須是唯一的。
allow_domains:允許的域名。爬蟲只會爬取這個域名下的網頁,其他不是這個域名下的網頁會被自動忽略。
start_urls:爬蟲從這個變量中的url開始,第一次下載的數據將會從這些urls開始。
parse:引擎會把下載器下載回來的數據扔給爬蟲解析,爬蟲再把數據傳給這個parse方法。這個是個固定的寫法。這個方法的作用有兩個,第一個是提取想要的數據。第二個是生成下一個請求的url。
看完上述內容,你們掌握Python爬蟲——Scrapy的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。