Python 如何发出附加请求并从中获取数据
我需要解析来自站点的数据。解析后,数据必须保存到磁盘。我用的是刮痧。工作时,我需要从另一个页面获取数据。我该怎么做Python 如何发出附加请求并从中获取数据,python,scrapy,Python,Scrapy,我需要解析来自站点的数据。解析后,数据必须保存到磁盘。我用的是刮痧。工作时,我需要从另一个页面获取数据。我该怎么做 class MySpider(scrapy.Spider): name = "my_spyder" start_urls = [ 'https://www.example.com/title/1', 'https://www.example.com/title/2', 'https://www.example.co
class MySpider(scrapy.Spider):
name = "my_spyder"
start_urls = [
'https://www.example.com/title/1',
'https://www.example.com/title/2',
'https://www.example.com/title/3',
]
def parse(self, response):
item = MyItem()
main_page_selector = Selector(response)
...
tagline_url = os.path.join(response.url, 'taglines')
request = Request(url=tagline_url, callback=get_tags)
item['tags'] = yield request
...
yield item
def get_tags(self, response):
tagline_selector = Selector(response)
taglines = []
for tag in tagline_selector.xpath('//div[@class="soda even"))]/text()').getall():
taglines.append(tag.strip())
return taglines
如何在“获取标签”功能期间在“项目”字段中写入收到的“标签”?
这些请求是异步执行的
request = Request(url=tagline_url, callback=get_tags)
request.meta["item"] = item
yield request
上面是解析方法的代码
item = response.meta["item"]
#...
item["tags"] = taglines
yield item
get_tags方法中的第二个代码首先是
callback=get_taglines
意思是callback=get_tags
?您看过scrapy的元数据支持了吗?它允许您传递键值对象,特别是cb_-kwargs
函数。你可以(显然)从你的回调中得到一本字典。看到了吗,我使用了类似的东西,但是没有回调来在几次页面访问中积累信息。