Curl将@sha256转译为@sha256的原因及优化解决方法
问题解答:curl抓取时@变为@的原因及简洁解决方法
原因
网页里的@被转成了HTML实体编码@——这是网站后端或模板引擎在输出内容时做了HTML转义处理,目的可能是避免特殊字符干扰HTML结构,或是防止邮件类链接被爬虫批量抓取。curl默认会原封不动返回网页的原始HTML内容,所以你看到的是编码后的实体,而浏览器会自动解码这个实体,显示成正常的@。
简洁解决方法
不用sed/awk手动替换,有更省心的方式:
- 用Python内置模块解码(大部分系统自带Python3,无需额外安装):
curl -s https://website | python3 -c "import html,sys; print(html.unescape(sys.stdin.read()))" - 用文本浏览器转成纯文本:比如
lynx或w3m,它们会自动处理HTML实体并输出纯文本内容:
或者:# debian/ubuntu系先安装:sudo apt install lynx lynx -dump https://website# debian/ubuntu系先安装:sudo apt install w3m w3m -dump https://website
内容的提问来源于stack exchange,提问作者user21113865
相关产品推荐
相关产品推荐

