在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行。于是自己又把cookie和一大堆header给加上,还是同样的问题,于是开始郁闷了。PHP脚本不行,但是同样的提交浏览器上面就行,这个是怎么回事呢? Coontent-Length: xxxx 这个是表示这次发送的数据的长度,说明是一个完整的http数据的发送,但是今天看到的这个却没有这一项,出现的却是 Transfer-Encoding chunked 于是开始郁闷了,这个到底是啥意思。谷歌了一番终于懂了,也找到对策了。 分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种服务器可以发送数据而不需要预先知道发送内容的总大小。通常数据块的大小是一致的,但也不总是这种情况。 终于知道这个是啥了,那边把数据给分段了,怪不得数据一直有问题,于是网上到处找解决办法,终于找到一个很巧妙的方法:使用HTTP 1.0协议,服务器会主动放弃chunked编码,所以在curl里面加个 curl_setopt($curl, CURLOPT_HTTP_VERSION, '1.0'); 问题就解决了,就是这么简单 |
2022-08-18
2022-08-17
2022-11-06
2022-08-17
2022-07-29
请发表评论