編寫Python Scrapy爬蟲需要遵循以下步驟:
pip install scrapy
scrapy startproject project_name
將project_name
替換為你的項目名稱。這將在當前目錄下創建一個名為project_name
的新文件夾,其中包含Scrapy項目的基本結構。
cd project_name
scrapy genspider spider_name example.com
將spider_name
替換為你的爬蟲名稱,將example.com
替換為你想要抓取的網站域名。這將在spiders
文件夾下創建一個名為spider_name.py
的新文件,其中包含爬蟲的基本代碼。
spider_name.py
文件,你會看到以下代碼:import scrapy
class SpiderNameSpider(scrapy.Spider):
name = 'spider_name'
allowed_domains = ['example.com']
start_urls = ['http://example.com/']
def parse(self, response):
pass
你需要修改name
屬性為你的爬蟲名稱,allowed_domains
屬性為允許抓取的網站域名列表,以及start_urls
屬性為爬蟲開始抓取的URL列表。接下來,你需要實現parse
方法,該方法是Scrapy用來處理網頁內容的回調函數。例如,你可以使用response.css
方法來提取頁面中的數據:
import scrapy
class SpiderNameSpider(scrapy.Spider):
name = 'spider_name'
allowed_domains = ['example.com']
start_urls = ['http://example.com/']
def parse(self, response):
for item in response.css('div.item'):
yield {
'title': item.css('h2.title::text').get(),
'description': item.css('p.description::text').get(),
}
在這個例子中,我們提取了所有div
元素,類名為item
的子元素中的h2
和p
元素的文本內容。
scrapy crawl spider_name
這將啟動爬蟲并開始抓取網站內容。你可以在logs
文件夾中查看爬蟲的輸出。
-o
選項,如下所示:scrapy crawl spider_name -o output.json
這將把抓取到的數據保存到名為output.json
的文件中。
這只是編寫Scrapy爬蟲的基本步驟。Scrapy提供了許多高級功能,如中間件、管道、選擇器等,可以幫助你更有效地抓取和處理數據。你可以查閱Scrapy官方文檔以了解更多信息:https://docs.scrapy.org/