SitemapSiperは、私たちはURLでサイトマップファイルでサイトをクロールすることができます。最後の更新、更新頻度と重み(重要性)のURLを含むサイト、全体で各URLのリンクをファイルサイトマップ。一般的なファイル形式にTXT、XMLやHTML形式のサイトマップ、サイトのほとんどは、XML形式で表示されます。ここでは、サイトマップファイル形式CSDNのウェブサイトを見てください。
のは、上記の各ノードのイメージの意味を説明してみましょう:
- LOC:完全なURL。
- LASTMOD:最後に変更。
- changefreq:更新頻度。
- 優先順位:重量にリンクします。
さんがSitemapSiper一般的に使用される属性を説明しましょう:
- sitemap_urls:サイトマップをクロールするURLのリストが含まれています。
- sitemap_rules:タプルのリスト、正規表現と、コールバック関数は、形式です(REGEX、コールバック)。正規表現は、正規表現は文字列でも良いことができます。コールバック関数を処理するためのURLをコールバック。
- sitemap_follow:指定した正規表現のリストをフォローアップするためにサイトマップの必要性;
- sitemap_alternate_link:オプションのURLリンクを指定したときにフォローアップするために、デフォルトでは、フォローアップすることではありませんか。ここでは、用語のリンクは、オプションの代替URL、一般的な形式を参照します。
<url>
<loc>http://aaa.com</loc>
<!--备用网址/可选链接-->
<xhtml:link rel="alternate" hreflang="en" href="http://aaa.com/en"/>
</url>
ゼロ、例
ここでは、ビューのサイトマップCSDNポイントを介してSitemapSiperクロールを使用する方法を見て。
from scrapy.spiders import SitemapSpider
from ..items import CsdnItem
class csdnspider(SitemapSpider):
name = 'csdn_spider'
sitemap_urls = ['https://www.csdn.net/sitemap.xml']
sitemap_rules = [
('beautifulsoup4', 'parse')
]
def parse(self, response):
docs = response.css('.local-toc li')
for doc in docs:
item = CsdnItem()
item["title"] = doc.css(".reference::text").extract_first()
item["url"] = doc.css(".reference::attr(href)").extract_first()
yield item
import scrapy
class CsdnItem(scrapy.Item):
title = scrapy.Field()
url = scrapy.Field()