几年来,我一直在“抓取”使用lynx -dump
包含非拉丁字符的网页中的内容。我将页面内容保存到文件中,然后通过sed代理进行修改,然后将其发送到电子邮件正文中,所有这些都在我创建的脚本中进行。但是我发现,在将发行版(Ubuntu切换为Void)后,我的脚本无法按预期工作。我已经确定了故障点,如下所示。
当我从命令行运行脚本的第一部分(包含lynx -dump URL
内容的部分和文件名)时,所有部分均按预期工作。该文件显示并包含我期望的非拉丁字符。但是,当我尝试通过指定与cron作业相同的命令来使过程自动化时,结果会有所不同。确实出现了预期的文件,但是我没有包含预期的非拉丁字符,而是得到的是使用拉丁字符音译的相同文本,而不是我想要的。我的脚本中执行的操作失败了,因为它取决于非拉丁字符的存在。
那么,为什么这些奇怪的结果取决于我是否从命令行而不是在cron作业中发出lynx命令呢?也许该网站正在进行某种检测,并且在一种情况下提供音译页面,而在另一种情况下则不提供音译页面?还是天猫座本身会将非拉丁字符音译成拉丁字符?输入将不胜感激。
lynx
使用当前语言环境来确定可用于显示页面的字符集。cron
但是,可能无法提供此信息,因此您需要执行以下操作:
lynx -display_charset=UTF-8 -dump http://example.com/some/page.html
(当然,如果与UTF-8不同,请使用系统上的字符集)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句