【发布时间】:2018-05-13 18:29:52
【问题描述】:
我正在抓取一个从单个 JSON 文件加载产品数据的网站。我通过检查网络流量找到了 JSON 的 URL。
问题是这样的:当我关注 JSON URL 时,大多数链接都会提供 JSON 结果。但是,其中包含特殊字符(例如 é)的产品的 JSON URL 返回空响应。当然数据显示在浏览器上,但我似乎无法直接获得 JSON 响应。
有什么建议吗?
(我正在尝试找到一个以相同方式运行的类似网站,因此我可以将其发布在这里)
编辑:
这是一个例子
产品A网址:https://www.boozebud.com/p/hopnationbrewingco/thedamned
WORKS:A 的 JSON 网址:https://www.boozebud.com/a/producturl/p/hopnationbrewingco/thedamned
产品B网址:https://www.boozebud.com/p/àbloc/superprestigenaturalblondebeer
返回 NULL:B 的 JSON url:https://www.boozebud.com/a/producturl/p/àbloc/superprestigenaturalblondebeer
(与我之前未回答的问题有关:scrapy: dealing with special characters in url 可能需要根据这个问题进行修改)
【问题讨论】:
-
minimal reproducible example 确实需要能够解决这个问题。
-
带有重音符号的“a”是否应该在网址中?
-
是的。原始url来自首页搜索商品,JSON url是从网络流量中提取出来的。
-
唯一的想法是使用本地代理服务器来捕获从浏览器发送到服务器的真实请求。也许它使用不同的字符或相同的字符但编码不同。或者,服务器可能会检查一些标头,例如
XHR或REFERER