Scrapy爬虫類テンプレート--SitemapSpider

SitemapSiperは、私たちはURLでサイトマップファイルでサイトをクロールすることができます。最後の更新、更新頻度と重み(重要性)のURLを含むサイト、全体で各URLのリンクをファイルサイトマップ。一般的なファイル形式にTXT、XMLやHTML形式のサイトマップ、サイトのほとんどは、XML形式で表示されます。ここでは、サイトマップファイル形式CSDNのウェブサイトを見てください。
CSDNのウェブサイトサイトマップファイル
のは、上記の各ノードのイメージの意味を説明してみましょう:

  1. LOC:完全なURL。
  2. LASTMOD:最後に変更。
  3. changefreq:更新頻度。
  4. 優先順位:重量にリンクします。

さんがSitemapSiper一般的に使用される属性を説明しましょう:

  1. sitemap_urls:サイトマップをクロールするURLのリストが含まれています。
  2. sitemap_rules:タプルのリスト、正規表現と、コールバック関数は、形式です(REGEX、コールバック)正規表現は、正規表現は文字列でも良いことができます。コールバック関数を処理するためのURLをコールバック。
  3. sitemap_follow:指定した正規表現のリストをフォローアップするためにサイトマップの必要性;
  4. 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()
204元記事公開 ウォンの賞賛101 ビューに35万+を

おすすめ

転載: blog.csdn.net/gangzhucoll/article/details/103900049