我有一个网站,我想从中提取数据。数据检索非常简单。HTTP POST和Scrapy解析JSON
它使用HTTP POST参数并返回一个JSON对象。所以,我有一个我想要做的查询列表,然后以特定的时间间隔重复更新数据库。 scrapy适合于此还是应该使用别的东西?
我其实不需要关注链接,但我确实需要同时发送多个请求。
我有一个网站,我想从中提取数据。数据检索非常简单。HTTP POST和Scrapy解析JSON
它使用HTTP POST参数并返回一个JSON对象。所以,我有一个我想要做的查询列表,然后以特定的时间间隔重复更新数据库。 scrapy适合于此还是应该使用别的东西?
我其实不需要关注链接,但我确实需要同时发送多个请求。
看起来像POST请求怎么样?有许多变体,比如简单的查询参数(?a=1&b=2
),类似形式的有效载荷(主体包含a=1&b=2
)或任何其他类型的有效载荷(主体包含某种格式的字符串,如json或xml)。
在scrapy是相当简单,使POST请求,请参阅:http://doc.scrapy.org/en/latest/topics/request-response.html#request-usage-examples
例如,您可能需要像这样:
# 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)
为了处理请求和检索响应,scrapy已经绰绰有余了。和解析JSON,只需使用json
模块中的标准库:
import json
data = ...
json_data = json.loads(data)
希望这有助于!
基于我对这个问题的理解,你只是想以特定的时间间隔从网页抓取/抓取数据。 Scrapy通常用于爬行。
如果您只是想提出http post请求,您可以考虑使用python requests库。
我知道如何处理的JSON响应,但不scrapy需要设置start_urls和规则来设置我的回调? – Crypto