[size=1.5]基于百度翻译API的火车头PHP翻译插件,适用所有火车头采集器版本文章归档 许多多 3年前 (2018-01-13) 12108次浏览 [url=]扫描二维码[/url]
之前一直在使用的 火车头翻译插件是免API的火车头 翻译插件,但由于最近 百度翻译官方改变了传递数据的规则,增加了的sign的验证,要破解的话应该有一定的难度,同时搜索遍了暂时也没有找到合适的火车头翻译插件,就上 百度翻译开放平台官方看了下。发现百度 翻译api每个月有200万字符的免费额度,对于我来说感觉已经够了,就拿百度翻译开放平台官方的DEMO修改了下,做成了这个基于 百度翻译API的火车头 php翻译插件。 插件优点- 本插件是PHP写的,就一个PHP文件,简单灵活。
- 不受火车头软件版本限制,任何有PHP插件权限的火车头版本都可以使用。
使用方法1.修改火车头的PHP环境 由于 火车头采集器软件内置的PHP环境有问题,在使用PHP插件之前需要先修改火车头的PHP环境。修改的方法很简单,打开火车头网站 采集软件的安装目录“System/PHP”,找到php.ini文件打开,并找到如下代码。 ;extension=php_curl.dll将最前面的分号“;”删除并保存即可,这样火车头 数据采集器就可以正常运行这个PHP翻译插件了。 2.申请百度翻译API 这个插件是基于百度翻译开放平台的,所以必须要先到百度翻译开放平台申请到 appID和密钥之后,插件才能正常使用。 申请百度开放平台的帐户很简单,只要填写姓名、Email、手机就可以了,审核也很快。最主要的是百度翻译开放平台审核也很宽泛,基本上只要你填的信息是真实的就会通过。 审核通过后,登陆百度翻译开放平台,进入“管理控制台”,在网页最底部的“申请信息”里可以看到“APP ID”和“密钥”,这两个需要填到插件代码里才能正常使用。 3.修改代码设置插件 插件下载后解压,用编辑器(推荐Dreamweaver或Notepad,最好不要用 Windows系统自带的记事本)打开“BaiduTranslateApi.php”文件,将12行的“YOUR APP ID”修改为你百度翻译开放平台的“APP ID”,将13行的“YOUR SEC KEY”修改为你百度翻译开放平台的“密钥”。 14、15行分别为你采集的语言和需要翻译成什么语言,例如插件默认的是采集的中文,用“zh”表示、需要翻译为英文,用“en”表示,你可以根据你的具体情况修改,所有语言的标识码查看下面的表格。 最后就是设置需要翻译的标签了,这个设置需要和 火车头采集器的采集标签一致,否则无法翻译。在“BaiduTranslateApi.php”文件的156、157两行里给了两个事例,分别是翻译“标题”和“内容”两个标签,如果你采集的标签名和我的不一样,则直接修改就可以,如果你要翻译的标签有很多个,按找事例的规律在下面新增代码就可以了,设置的话看代码上面的注释应该能看懂。 需要特别说的是翻译方式有两种,一种是不保存采集的内容直接翻译,另一只是保存采集的内容再翻译;插件上默认的“标题”就是不保存采集的内容,软件会直接保存翻译后的内容,“内容”标签就是保存了采集的内容,同时也保存了翻译后的内容。对比一下两行代码前后标签名的区别,应该就能看出规律。 如下两张图为设置方法: ↑上图可以看到,我采集了标题、关键词、内容三个标签,并且将这三个标签都翻译成了英文。但是翻译后的显示有区别,“标题”这个标签是直接显示了翻译后的英文内容,没有采集的中文,而关键词和内容两个标签都保留了采集的中文原文,同时另外用一个标签来保存了翻译后的英文。设置方法需要修改插件的“BaiduTranslateApi.php”文件,见下图。
↑上图就是插件的代码设置,这个设置是必须的,并且必须根据你的火车头采集的标签名来设置,否则会翻译不了。看上图156、157、158三行代码,156行表示将火车头采集规则里“标题”这个标签翻译,并且不保存中文原文;157行表示将“关键词”这个标签翻译,并且保存采集的原文,然后需要另外在火车头建一个“翻译后的关键词”标签来保存翻译后的英文,158行的代码规则和157行是一样的,只是翻译标签为“内容”这个采集标签。如果你要翻译的标签不止上面3个,那么直接按照上面的规则在158行后按前面的规则添加代码即可,一行为一条规则。
代码如下(注意修改引号内的内容为你火车头的实际标签名): $LabelArray['翻译后的标签名'] = translate($query = $LabelArray['采集标签名']);如果需要保存采集的内容,又要保存翻译后的内容,那在采集规则设置时,需要创建一个翻译后的标签名,规则留空即可。例如插件默认的内容标签,我的火车头 采集软件里“内容”这个标签需要填写采集规则,这个标签会保存采集的内容,再创建一个标签名为“翻译的内容”的标签,这个标签不需要填任何规则,火车头 网站数据抓取软件开始采集后这个标签会自动保存翻译的内容。 如果你的火车头 采集工具能正常采集到内容,但是不显示翻译的内容,那肯定是你的插件设置不对,请仔细阅读插件代码末尾的注释说明,按说明和事例的规则进行设置。如果翻译的内容报错,请看下面的错误代码,根据提示检查。 如果还不会,那就留言吧。 错误代码插件内置了大部分的错误,只要插件设置不正确的话火车头的采集结果就会显示错误内容,基本上设置不正确的话看采集结果就能知道怎么解决,下面是更详细的错误和解决方法。 错误码 | 含义 | 解决方法 | 52000 | 成功 | | 52001 | 请求超时 | 重试,或将插件代码第1行的“30”改大一点试试。 | 52002 | 系统错误 | 重试 | 52003 | 未授权用户 | 检查您的APPID设置是否正确 | 54000 | 必填参数为空 | 检查插件的采集规则,看看是否没有采集到内容 | 54001 | 签名错误 | 请检查您的密钥是否填写正确 | 54003 | 访问频率受限 | 采集的频率太高,过段时间或调整下采集间隔试试 | 54004 | 账户余额不足 | 余额不足,您的免费字符已用完或余额不足 | 54005 | 长query请求频繁 | 3s后再试,或调整采集时间间隔,或调整采集的文章长度试试 | 58000 | 客户端IP非法 | 检查个人资料里填写的IP地址是否正确
可前往管理控制平台修改
IP限制,IP可留空 | 58001 | 译文语言方向不支持 | 译文语言方向错误,请检查您设置的目标语言标识码是否正确。 |
基于百度翻译API的火车头PHP翻译插件错误代码列表
语言标识百度翻译API支持28种语言互译,各语言标识码如下: 语言标识码 | 名称 | auto | 自动检测 | zh | 中文 | en | 英语 | yue | 粤语 | wyw | 文言文 | jp | 日语 | kor | 韩语 | fra | 法语 | spa | 西班牙语 | th | 泰语 | | 阿拉伯语 | ru | 俄语 | pt | 葡萄牙语 | de | 德语 | it | 意大利语 | el | 希腊语 | nl | 荷兰语 | pl | 波兰语 | bul | 保加利亚语 | est | 爱沙尼亚语 | dan | 丹麦语 | fin | 芬兰语 | cs | 捷克语 | rom | 罗马尼亚语 | slo | 斯洛文尼亚语 | swe | 瑞典语 | hu | 匈牙利语 | cht | 繁体中文 | vie | 越南语 |
语言标识码错误的话,火车头的翻译标签内容会报错,需要按上面表格的语言标识码正确设置插件第14、15行。 注意事项免费版火车头 数据采集软件不能使用本插件,因为免费版的火车头采集器禁止了插件功能,其实免费版火车头采集软件也不能用任何插件。 百度翻译开放平台对每个帐户每个月有200万免费字符的限额,如果每个月翻译的字符数超过200万,则需要收费。而且他的收费方式比较坑,当超过200万字符时,并不是只收取超过字符的费用,而是收取当月全部翻译字符数的费用。(官方原话:当月翻译字符数≤200万,当月免费。超过200万字符,按照49元人民币/百万字符,支付当月全部翻译字符数费用。) 我测试了下,字符的规则为:汉字、英文字母、阿拉伯数字、标点(含中英文)、空格均计算为1个字符,回车计算为4个字符。 下载地址插件和代码均免费发布使用,不提供技术维护。有什么建议或插件使用遇到有问题,可以在下面评论留言,看到我都会回复,但我本身不会PHP开发,高难度问题我不一定能实现。欢迎转载本文和插件,但请注明出处,转载插件请保留代码内的注释说明。
|