Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python HTTP POST和使用Scrapy解析JSON_Python_Json_Scrapy_Web Crawler - Fatal编程技术网

Python HTTP POST和使用Scrapy解析JSON

Python HTTP POST和使用Scrapy解析JSON,python,json,scrapy,web-crawler,Python,Json,Scrapy,Web Crawler,我有一个网站,我想从中提取数据。数据检索非常简单 它使用HTTPPOST获取参数并返回一个JSON对象。所以,我有一个查询列表,我想做,然后在一定的时间间隔重复更新数据库。scrapy适合做这个还是我应该用别的 我实际上不需要关注链接,但我确实需要同时发送多个请求。对于处理请求和检索响应,scrapy就足够了。要解析JSON,只需使用标准库中的模块: import json data = ... json_data = json.loads(data) 希望这有帮助 根据我对这个问题的理解,

我有一个网站,我想从中提取数据。数据检索非常简单

它使用HTTPPOST获取参数并返回一个JSON对象。所以,我有一个查询列表,我想做,然后在一定的时间间隔重复更新数据库。scrapy适合做这个还是我应该用别的


我实际上不需要关注链接,但我确实需要同时发送多个请求。

对于处理请求和检索响应,scrapy就足够了。要解析JSON,只需使用标准库中的模块:

import json

data = ...
json_data = json.loads(data)

希望这有帮助

根据我对这个问题的理解,您只需要每隔一定的时间从网页获取/刮取数据。刮痧通常用于爬行


如果您只想制作HTTP POST请求,您可以考虑使用库。

看起来像POST请求?有许多变体,如简单查询参数(

?a=1&b=2
)、类似表单的负载(正文包含
a=1&b=2
)或任何其他类型的负载(正文包含某种格式的字符串,如json或xml)

在scrapy中,发出POST请求非常简单,请参见:

例如,您可能需要以下内容:

    # Warning: take care of the undefined variables and modules!

    def start_requests(self):
        payload = {"a": 1, "b": 2}
        yield Request(url, self.parse_data, method="POST", body=urllib.urlencode(payload))

    def parse_data(self, response):
        # do stuff with data...
        data = json.loads(response.body)

我知道如何处理JSON响应,但scrapy不需要设置start_URL和规则来设置回调?我希望它同时获取多个数据点,然后在继续之前等待一定的时间间隔。这就是为什么我认为我会使用scrapy,因为它支持这一点。如果我使用requests模块,那么我必须一次执行一个。我的意思是异步。我正在考虑是否可以从CrawlSpider类设置请求。我仍然不确定为什么需要使用scrapy。它被用来在网络图上爬行和抓取内容,但你似乎没有这样做。异步请求可以使用库。再看看这个问题。