我正在抓取一个从个别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可能需要根据此问题进行修订)
答案 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