Python HTTP POST和使用Scrapy解析JSON
我有一个网站,我想从中提取数据。数据检索非常简单 它使用HTTPPOST获取参数并返回一个JSON对象。所以,我有一个查询列表,我想做,然后在一定的时间间隔重复更新数据库。scrapy适合做这个还是我应该用别的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) 希望这有帮助 根据我对这个问题的理解,
我实际上不需要关注链接,但我确实需要同时发送多个请求。对于处理请求和检索响应,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。它被用来在网络图上爬行和抓取内容,但你似乎没有这样做。异步请求可以使用库。再看看这个问题。