0
私の要件はsitemap.xmlに存在するすべてのURLを取得することですが、scrapy sitemapspiderクラスはタスクを実行しますが、ページを解析して、全体をダウンロードしようとすると、ページ。Scrapy SitemapSpiderで構文解析を停止する方法
それぞれのURLにアクセスせずにURLを取得する方法です。
私の要件はsitemap.xmlに存在するすべてのURLを取得することですが、scrapy sitemapspiderクラスはタスクを実行しますが、ページを解析して、全体をダウンロードしようとすると、ページ。Scrapy SitemapSpiderで構文解析を停止する方法
それぞれのURLにアクセスせずにURLを取得する方法です。
あなたのためにすべてを行う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
私はあなただけのページからリンクを抽出し、それらをダウンロードしていないリンク抽出を使用することができると思います。後でこのデータをファイルなどにダンプすることができます。 - http://doc.scrapy.org/en/latest/topics/link-extractors.html –
あなたがしたいことをもう少し明確にできますか?あなたはsitemap.xmlに行き、そこからすべてのリンクを抽出しますか? – Granitosaurus
はいグラニトサウルス –