添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

问题:终端使用curl请求url时返回为空可能是网站反爬机制限制为windows 或mac端才能进行数据获取。
解法:可通过设置头文件解决。
curl -a aa.html “https://www.ip138.com/iplookup.asp?ip=58.217.246.123&action=2” -H ‘User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36’ -H ‘Accept-Language: zh-CN,zh;q=0.9,en;q=0.8’

1.是用curl抓取的数据是用类似gzip压缩后的数据导致的乱码。
乱码:curl www.genecode.com |more
乱码:curl -H "Accept-Encoding: gzip"www.1ting.com | more
不乱码:curl -H "Accept-Encoding: gzip"www.1ting.com | gunzip | more

小总:
也就是说在curl后面加上Accept-Encoding:gzip,再用gunzip解压缩,则基本上可以保存数据不乱码。

2.GBK或者UTF8汉字之类的乱码

iconv命令是运行于linux平台的文件编码装换工具。当我们在linux系统shell下通过curl命令或者wget命令获取一个网页的源代码,当网页的编码与当前操作系统坏境的设置的编码不同时,就会发现网页中有很多乱码。如在网页"meta"标签"charset"属性值设置为"gb2312"的http://www.baidu.com百度首页,在系统坏境变量" LANG"值为"en_US.UTF-8"的linux系统即会产生中文乱码现象。这时我们可以尝试使用iconv命令进行编码装换,让中文不在是乱码。如下命令是处理百度在系统坏境变量" L A NG " 值为 " e n U S . U TF 8" l in ux 系统即会产生中文乱码现象。这时我们可以尝试使用 i co n v 命令进行编码装换,让中文不在是乱码。如下命令是处理百度在系统坏境变量 " LANG"值为"en_US.UTF-8"的linux系统乱码的问题的解决方案之一:

curl “https://www.ip138.com/iplookup.asp?ip=58.217.246.123&action=2” -H ‘User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36’ -H ‘Accept-Language: zh-CN,zh;q=0.9,en;q=0.8’|iconv -fgb2312 -t utf-8 > aa.html

当然,你也通过改变系统坏境变量与百度首页的"charset"值一致,也可以解决此乱码问题,如下命令:

set LANG=“gb2312”
export LANG
curl http://www.google.com

iconv命令的详细语法:
iconv [选项…] [文件…]
选项:
-f 输入编码 (兼容中文通常为gb18030或gb2312)
-t 输出编码
-l 列出所有已知的编码
-o 输出文件

curl 输出 返回 白或者null问题 解决 如果发现标题类似问题,很有可能是因为ssl证书问题导致只需要在 curl 方法 中加入以下代码即可: curl _setopt($ch, CURL OPT_SSL_VERIFYPEER, false);//禁止 cURL 验证对等证书 curl _setopt($ch, CURL OPT_SSL_VERIFYHOST, false);//是否检测 服务器 的域名与证书上的是否一致 赠送个比较全的 curl 代码 * CURL 请求 函数:支持POST及基本header头信息
网上查找了一下,由于采用https协议,一定要加入以下两句 curl _setopt($ch, CURL OPT_SSL_VERIFYPEER, false); //不验证证书下同 curl _setopt($ch, CURL OPT_SSL_VERIFYHOST, false); // 这样就能获取到了 转载于:https://www.cnblogs.com/Basu/p/7967352...
php curl 返回 返回 乱码 情况处理 返回 字符串的情况 如果 curl 请求 返回 字符串,尝试用file_get_contents访问,如果可以 返回 正确的 内容 ,那么多半是 请求 的地址 返回 302重定向了。此 只需加 curl _setopt($ch, CURL OPT_FOLLOWLOCATION, 1); 即可 解决 返回 乱码 的情况 如果 curl 返回 乱码 ,大多数情况是因为 返回 的数据被压缩了,没有正确的解码,此 只需加 $ curl ->setOpt( CURL OPT_ENCODING,''); 即可 解决
CURL 发送POST 请求 curl -H "Content-Type: application/json" -X POST -d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' "http://192.168.0.1:8001/test" 参数 内容 -H 请求 头 -d POST 内容 -X 请求 协议 curl 是常用的命令行工具,用来 请求 Web 服务器 。它的名字就是客户端(client)的 URL 工具的意思。它的功能非
候用 curl 命令行下载 为空 的情况,如: zhuliting@zhuliting:~$ curl 'http://m.youku.com' -o youku.html % Total % Received % Xferd Average Speed Time Time Time Current
回答: 要在 Linux 使用 curl 命令后台运行,可以 使用 以下命令: curl -s http://marsoffset.goforandroid.com/GoSmsMarService/abc?a=116.397428\&b=39.90923 & 在命令的末尾加上`&`符号可以将 curl 命令放在后台运行。这样, curl 命令将在后台发送 请求 并接收响应,而不会阻塞 终端 。\[2\] #### 引用[.reference_title] - *1* *2* [ linux 使用 curl 访问多参数 url ](https://blog.csdn.net/fgszdgbzdb/article/details/73556802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ linux 常用命令 Tomcat启停 zip文件解压与压缩 修改权限 前后台运行 删除 乱码 文件名](https://blog.csdn.net/chenhao0568/article/details/74332302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]