我正在编写一些必须从网站获取一些数据的代码。没有什么争议(我认为)——这是针对儿童体育俱乐部的,它必须从国家组织的网站上获取他们的时间。它不是专有或商业数据。
问题是返回的数据似乎是故意损坏的。我可能只是偏执,但我已经花了几个小时检查这个。我正在使用自己的代码,并且正在使用实时标题 Firefox 扩展来找出要发送到站点的内容。我正在GET
完全复制标题,除了我要省略之外Accept-Encoding
,因为我不想处理 gzip。我已经尝试Connection
将两者都设置为close
and keep-alive
,但这没有区别。
返回的页面周围散布着一些额外的十六进制字符序列 - 没什么,但足以搞乱我的解析。每次我尝试这个时,角色和他们的位置都会改变。我最初的想法是,我将返回的缓冲区的拼接弄乱了(我可能需要调用recv
20 次才能获取整个页面),但这似乎不是问题。页面的抓取版本总是这样结束,例如:
</body>
7
</html>
0
实时页面总是结束的地方</body></html>
。
知道这里发生了什么吗?该站点似乎位于 Cloudflare/nginx 上。这是nginx可以做到的吗?他们是否有可能弄乱了页面的文本版本,并在 gzip 压缩版本上发送了良好的数据?我不想开始解压缩数据。