现在我的蜘蛛正在发送数据到我的网站以这种方式:
def parse_product(response,**cb_kwargs):
item = {}
item[url] = response.url
data = {
"source_id": 505,
"token": f"{API_TOKEN}",
"products": [item]
}
headers = {'Content-Type': 'application/json'}
url = 'http://some.site.com/api/'
requests.post(url=url, headers=headers, data=json.dumps(data))
是否有可能通过管道或中间件以某种方式实现这种设计,因为为每个spider指定是不方便?
p.s.数据(data)需要以json格式(json.dumps(data)
)发送,如果我制作了item = MyItemClass(
)类,会出现错误...
2条答案
按热度按时间1bqhqjot1#
你也可以使用scrapy的
Item
类和itemField
类,只要在调用json.dumps
之前将它们转换为dict
即可。例如:
如果你使用这个例子,它会在你从蜘蛛得到的每一件物品上调用它。记住在你的www.example.com文件中激活它settings.py。
9ceoxa922#
我发现了另一个额外的解决方案(在github上),也许有人会感兴趣...
pipeline.py