JSON URL有时会返回null响应

时间:2017-11-29 22:43:54

标签: python json scrapy

我正在抓取一个从个别JSON文件加载产品数据的网站。我通过检查网络流量找到了JSON的URL。

问题是:当我按照JSON URL时,大多数链接都会提供JSON结果。但是,其中包含特殊字符的产品的JSON URL(例如é)会返回null响应。当然,数据显示在浏览器上,但我似乎无法直接获得JSON响应。

任何提示?

(我正试图找到一个类似的网站,以同样的方式行事,所以我可以在这里发帖)

编辑:

这是一个例子

产品A网址:https://www.boozebud.com/p/hopnationbrewingco/thedamned

工作:A的JSON网址:https://www.boozebud.com/a/producturl/p/hopnationbrewingco/thedamned

产品B网址:https://www.boozebud.com/p/àbloc/superprestigenaturalblondebeer

RETURNS NULL:B的JSON url:https://www.boozebud.com/a/producturl/p/àbloc/superprestigenaturalblondebeer

(与我之前未回答的问题相关:scrapy: dealing with special characters in url可能需要根据此问题进行修订)

1 个答案:

答案 0 :(得分:2)

在我看来问题是标题,它似乎对至少yield Request('https://www.boozebud.com/a/producturl/p/%C3%A0bloc/superprestigenaturalblondebeer', headers={"Content-Type": "application/json; charset=UTF-8"}) 标题非常敏感,似乎它在服务器内部用于解码传入的URL或类似的东西。 尝试下载这样的请求(这是内部js正在做的事情)

UPDATE TABLE_NAME
SET COLUMN_1 = VALUE
WHERE CONDITION