Scrapy 用の次のスパイダーがあります。サイトマップのトップ レベルのページだけでなく、それらのページの第 1 レベルの子であるページもスクレイピングする必要があります。次に、子のスクレイプの結果を、親の parse メソッドからの body 項目と連結する必要があります。このようなことを行うためのコードを手伝ってくれる人はいますか?
from scrapy.contrib.spiders import SitemapSpider
from scrapy.selector import HtmlXPathSelector
from cvorgs.items import CvorgSite
class CvorgSpider(SitemapSpider):
name = 'cvorg_spider'
sitemap_urls = ["http://www.urbanministry.org/cvorg_urls.xml"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = CvorgSite()
item['url'] = response.url
item['title'] = hxs.select('//title/text()').extract()
item['meta'] = hxs.select('/html/head/meta[@name="description"]/@content').extract()
body = ' '.join(hxs.select('//body//p//text()').extract())
item['body'] = body.replace('"', '\'');
return item