scrapy 处理大 XML 源链接
我正在使用 scrapy 的 XMLFeedSpider 来处理一个有 300 兆字节的大 XML 数据源。
除了把这个大数据源中的每一条记录保存为一个项目,每条记录还有一些额外的链接需要抓取,这次是指向 HTML 页面。
我知道抓取 HTML 页面是用 CrawlerSpider,所以我在想怎么能用这种爬虫来跟踪这个大 XML 数据源中的链接。
谢谢,
Guy
1 个回答
2
首先,请阅读这个链接:http://readthedocs.org/docs/scrapy/en/latest/intro/tutorial.html
我在scrapy中创建了一个项目。下面是用来获取特定XML中所有网址的代码。你应该使用spiders目录。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
from scrapy.item import BaseItem
from scrapy.spider import BaseSpider
from scrapy.selector import XmlXPathSelector
from scrapy.utils.spider import create_spider_for_request
from scrapy.utils.misc import load_object
from scrapy.utils.response import open_in_browser
class TestSpider(BaseSpider):
name = "test"
start_urls = ["http://fgeek.kapsi.fi/test.xml"]
def parse(self, response):
xpath = XmlXPathSelector(response)
count = 0
for url in xpath.select('entries/entry/url').extract():
print url