Scrapy框架中的CrawlSpider是一種高級爬蟲,它提供了一種更方便的方式來編寫爬蟲,特別適用于處理需要跟蹤鏈接的網站。
使用CrawlSpider,你需要創建一個新的spider類,繼承自CrawlSpider,并定義一些規則來指定如何跟蹤鏈接和提取數據。下面是一個簡單示例:
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class MySpider(CrawlSpider):
name = 'myspider'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com']
rules = (
Rule(LinkExtractor(allow=(r'category\.php',)), callback='parse_category'),
Rule(LinkExtractor(allow=(r'item\.php',)), callback='parse_item'),
)
def parse_category(self, response):
# 處理分類頁面的響應
def parse_item(self, response):
# 處理商品頁面的響應
在上面的示例中,allowed_domains
用于指定允許爬取的域名,start_urls
用于指定起始URL。
rules
是一個元組,其中包含一系列規則,每個規則都包含一個LinkExtractor對象和一個回調函數。LinkExtractor對象用于指定要跟蹤的鏈接的匹配規則,可以使用正則表達式。回調函數用于處理每個匹配到的鏈接的響應。
在上面的示例中,第一個規則將匹配所有包含"category.php"的鏈接,并將其響應傳遞給parse_category
方法進行處理。第二個規則將匹配所有包含"item.php"的鏈接,并將其響應傳遞給parse_item
方法進行處理。
以上就是使用CrawlSpider的基本用法。你可以根據需要定義更多的規則和回調函數來處理不同類型的鏈接和數據。