gpt4 book ai didi

Scrapy:如何通过 api 将项目发送到站点

转载 作者:行者123 更新时间:2023-12-05 01:50:04 24 4
gpt4 key购买 nike

现在我的蜘蛛正在以这种方式向我的站点发送数据:

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))

是否可以通过管道或中间件以某种方式实现此设计,因为不方便为每个蜘蛛开处方?

附注数据(data)需要以json格式发送(json.dumps(data)),如果我制作item = MyItemClass()类,就会出现错误...

最佳答案

这可以很容易地使用管道来完成。您还可以使用 scrapy 的 Item 类和项目 Field 类,只要在调用 json.dumps 之前将它们转换为 dict

例如:

class Pipeline:

def process_item(self, item, spider):
data = dict(item)
headers = {'Content-Type': 'application/json'}
url = 'http://some.site.com/api/'
requests.post(url=url, headers=headers, data=json.dumps(data))
return item

如果您使用此示例,它会在您从蜘蛛获取的每个项目上调用它。请记住在您的 settings.py 文件中激活它。

关于Scrapy:如何通过 api 将项目发送到站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73439304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com