2016-08-12 3 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

예 Granitosaurus –

답변

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