python - HTTP POST 和使用 Scrapy 解析 JSON

标签 python json scrapy web-crawler

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

它使用 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)

关于python - HTTP POST 和使用 Scrapy 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21018618/

相关文章:

python - 更改包含重音和本地字母的 unicode 字符串中字母的大小写

java - 从Map中获取键值对

python - 获取一个Python程序来显示JSON数据

python - 如何使用scrapy从站点地图中抓取修改日期已更改的url?

python - 带有身份验证数据的公共(public) FTP 站点的 scrapy,出现 FTP 错误

ubuntu - Scrapy 飞溅设置 : "SPLASH_URL"

python - Django 表单未在模板中呈现

python - Paypal 自适应支付 589023

python - 跳过某些特定字符的正则表达式

c# - 使用 FromBody 在 WebAPI 中建模的 JSON 对象和简单类型