python爬蟲-初識scrapy框架
阿新 • • 發佈:2022-03-22
什麼是scrapy框架
介紹
Scrapy是適用於Python的一個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。
Scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。
Scrapy吸引人的地方在於它是一個框架,任何人都可以根據需求方便的修改。
它也提供了多種型別爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支援。
基本功能
Scrapy是一個適用爬取網站資料、提取結構性資料的應用程式框架,它可以應用在廣泛領域:Scrapy 常應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。
通常我們可以很簡單的通過 Scrapy 框架實現一個爬蟲,抓取指定網站的內容或圖片。
儘管Scrapy原本是設計用來螢幕抓取(更精確的說,是網路抓取),但它也可以用來訪問API來提取資料。
scrapy環境安裝
這裡建議使用conda建立獨立的環境或者是在pycharm中來安裝scrapy
pip install scrapy
scrapy基本使用
1. 建立工程
cd xxx # 進入到專案指定目錄
scrapy startproject study_scrapy01 # 建立一個名為study_scrapy01的工程
顯示建立成功
New Scrapy project 'study_scrapy01', using template directory '/Users/soutsukyou/opt/anaconda3/lib/python3.8/site-packages/scrapy/templates/project', created in: /Users/soutsukyou/PyCharm_Workspace/網路爬蟲/study_scrapy/study_scrapy01 You can start your first spider with: cd study_scrapy01 scrapy genspider example example.com
專案結構
2. 在spiders子目錄下建立一個爬蟲檔案
cd study_scrapy01 # 進入你建立的專案
scrapy genspider spider_01 www.baidu.com # 生成一個爬蟲檔案 名為:spider_01 網址為:www.baidu.com
返回結果,這是你會發現你的spiders目錄下多了一個 spide_01.py 的檔案
Created spider 'spider_01' using template 'basic' in module:
study_scrapy01.spiders.spider_01
3. 編寫爬蟲檔案
新建立的spide_01.py檔案還沒有任何爬取方法,我們需要詳細它。
import scrapy
class Spider01Spider(scrapy.Spider):
# 爬蟲檔案的名稱
name = 'spider_01'
# 允許的域名,該列表用來限定start_urls列表中的url那些可以請求傳送
# 一般不會讓這個裡面有值,或者不使用它
# 假如要爬取一個網站中圖片,那麼這個網站的圖片不一定是在這個網站的域名之下
allowed_domains = ['www.baidu.com']
# 起始的url列表,該列表中的url會被scrapy自動的進行請求傳送
start_urls = ['http://www.baidu.com/']
# 用於資料解析,response就是請求成功後的響應物件
def parse(self, response):
print(response)
4. 修改settings.py配置檔案
君子協議,這個君子不當也罷(歪嘴)
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
# 僅輸出錯誤日誌
LOG_LEVEL = 'ERROR'
5. 執行工程檔案
scrapy crawl spider_01