pythonのCrawlSpiderの使い方は何ですか?
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メソッドに渡して処理します。2番目のルールはすべての「item.php」を含むリンクに一致し、応答をparse_itemメソッドに渡して処理します。
CrawlSpiderの基本的な使用方法は以上です。異なる種類のリンクやデータを処理するために必要に応じてさらに多くのルールやコールバック関数を定義することができます。