据我所知,Scrapy
异步工作,请求无序。
现在,我可以解析某个网站页面上的项目列表,并查看详细信息以解析其他信息。
问题在完成所有这些工作后,我需要为另一个城市解析相同的数据。
城市通过提出http://www.example.com/city/set/1
等请求进行更改。
我的蜘蛛看起来像这样:
class ExampleSpider(scrapy.Spider):
name = "example"
allowed_domains = ["example.com"]
def start_requests(self):
for category in CATEGORIES:
if 'subcategories' in category:
subcategories = category['subcategories']
for subcategory in subcategories:
url = subcategory['url']
yield scrapy.Request(
url = url,
callback = self.parse,
meta = {
'category': category,
'subcategory': subcategory
}
)
def parse(self, response):
pass
这样做的最佳方法是什么?
答案 0 :(得分:0)
您可以直接链接请求:
def parse(self, response):
item = dict()
# fill up item with data
city_url = '' #make city url
yield Request(city_url,
meta={'item': item}, # carry item to next callback in meta
callback=self.parse_city)
def parse_city(self, response):
# get item from meta
item = response.meta['item']
# add more stuff to your item
item['some_city_data'] = ''
yield item