2016-08-12 6 views
0

私の要件はsitemap.xmlに存在するすべてのURLを取得することですが、scrapy sitemapspiderクラスはタスクを実行しますが、ページを解析して、全体をダウンロードしようとすると、ページ。Scrapy SitemapSpiderで構文解析を停止する方法

それぞれのURLにアクセスせずにURLを取得する方法です。

+0

私はあなただけのページからリンクを抽出し、それらをダウンロードしていないリンク抽出を使用することができると思います。後でこのデータをファイルなどにダンプすることができます。 - http://doc.scrapy.org/en/latest/topics/link-extractors.html –

+0

あなたがしたいことをもう少し明確にできますか?あなたはsitemap.xmlに行き、そこからすべてのリンクを抽出しますか? – Granitosaurus

+0

はいグラニトサウルス –

答えて

0

あなたのためにすべてを行うscrapy.utils.sitemap.Sitemapオブジェクトを使用して、サイトマップからURLを抽出することができます。

import scrapy 
from scrapy.utils.sitemap import Sitemap 


class SitemapJustUrlsSpider(scrapy.Spider): 
    name = "sitemap_spider" 
    start_urls = (
     'http://www.example.com/sitemap.xml', 
    ) 

    def parse(self, response): 
     s = Sitemap(response.body) 
     for sitelink in s: 
      url = sitelink['loc'] 
      yield {'url': url} 

は、それからちょうどURLを保存するには: scrapy crawl sitemap_spider -o urls.json

関連する問題