目录
     l 采集场景

    【场景描述】通过采集百度翻译后的数据实现批量翻译。

    【源网站介绍】百度翻译提供即时免费200+语言翻译服务,拥有网页和APP产品,百度翻译APP还支持拍照翻译、语音翻译等特色功能,随时随地沟通全世界。

    【使用工具】前嗅ForeSpider数据采集系统,免费下载:

    ForeSpider免费版本下载地址

     

    采集网站

    【入口网址】https://fanyi.baidu.com/translate?aldtype=16047&query=&keyfrom=baidu&smartresult=dict&lang=auto2zh#auto/zh/

    【采集内容】

    将之前采集好的某新闻网站英文内容,使用百度翻译成中文后,采集翻译好的中文内容。

     

    【采集效果】如下图所示:

     


    l 采集思路

     


    配置步骤

    1. 新建采集任务

    选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。

     

     

    2.观察数据请求链接

    ①复制任意一条需要翻译的英文文本内容,在浏览器中打开百度翻译,点击F12打开,如下图所示:



    ②将英文文本复制在左侧框中,观察右侧出现翻译请求。

     

     

    打开每个请求,查看Preview内容,找到翻译内容返回的请求链接,如下图所示:



    ③查看请求header,发现该请求为post请求。

     


    找到post请求的Cookie、refer和FormData,如下图所示:

      


    观察发现,不同的翻译请求链接,cookie和refer不变,FormData中的query内容变化,query参数即为需要翻译的英文文本。


    所以可以用脚本拼出这个post请求从而获取到翻译后的数据。


    我们再打开这个请求的preview预览界面,观察翻译后的数据位置,发现所需要的翻译后的文本,就是js中data下的每个对象中的dst值合起来的内容。

     


    我们再打开response界面,查看返回请求的内容是否与浏览界面一致。

     


    观察发现数据结构一致,但是返回的为unicode编码,而非中文,所以后期配置脚本时,需要将unicode编码转中文一下。

     

    3. 创建数据表

    ①新建数据表,具体如下图所示:

     


    ②将原来模板中的链接抽取删掉,添加一个数据抽取,如下图所示:

     


    ③关联数据表

     

     

    ④由于数据在请求的源码中,数据抽取需要写脚本来实现。打开脚本窗口,新建数据抽取脚本。

     


    ⑥先写脚本调用数据表中的英文文本

     


    然后再拼写post请求并打开请求,获取其中翻译好的中文数据:如下图所示:

     


    脚本如下所示:

    var table = DATADB.Open("news"); //打开数据表news
    var recs = table.Query(""); //查询条件为空
    for(k in recs each v)//调用每个数据
    {
    record re;//定义一个返回值,返回数据固定搭配
    var transid = v.id;//调用news中的id
    var trans = v.content;//调用news中的content
    var con=trans;//待翻译的文字
    var link="https://fanyi.baidu.com/transapi";//link为请求链接
    var header;//定义一个请求头
    header.cookie = "PSTM=1640935140; __yjs_duid=1_6be72458114c4fd1196316a46e9ce7451641260822171; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; APPGUIDE_10_0_2=1; BIDUPSID=096B3D7C050B28965962CD01423B63E0; BDUSS_BFESS=0p0OGpBR2E5VlAtZm9tMVVXVWk1QzR2dUsza3gxSndpLVhqT1NOMWhNT2ZPSDVpRUFBQUFBJCQAAAAAAAAAAAEAAACB~KWqvtayv7K7x-fM7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ-rVmKfq1Zib; H_WISE_SIDS=110085_127969_174443_179350_184716_189755_190621_191243_194085_194519_194530_196425_197242_197471_197711_197947_198268_198502_199023_199177_199571_200965_201193_201539_201706_202651_203190_203309_203519_203525_204031_204535_204726_204779_204860_204910_205218_205406_205485_205569_206007_206728_206814_207235_207265_207473_207512_207729_207831_207863_207893_207990_208001_208049_208055_208115_208137_208182_208223_208225_208267_208270_208312_208343_208365_208686_208721_208770_209059_209116_209345_209394_209484_209487_209512_209520_209568_209674_209749_209847_210164_210357_8000097_8000122_8000142_8000143_8000153_8000164_8000174_8000177_8000182_8000189; MCITY=-332%3A; BAIDUID=1D82B7C477AD76BA7C657C4B21592D1D:SL=0:NR=10:FG=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; delPer=0; PSINO=2; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; H_PS_PSSID=34812_35912_36165_34584_36122_36193_36125_36226_26350_22157_36061; BA_HECTOR=80ag0l81ah0h0g806k1h5sjt50r; BCLID=11037166929813919530; BDSFRCVID=IeFOJexroG0xWiQDV4eCrph4ZSNbUdrTDYrEQ-mAp1wm6V8VJeC6EG0Pts1-dEu-EHtdogKK02OTHkFF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tbuHVC8htID3qnjpKITaMJF0bMQJ5C62aKDs2qb7BhcqEIL4eJj8yjbBQbDq-TbH-I-JhJ5mMq4MSMbSj4D5X4A33lJwB4QlLaT9aKO4fp5nhMtGb67JDMPF-4bpb4Qy523ioIovQpnOslQ3DRoWXPIqbN7P-p5Z5mAqKl0MLPbtbb0xb6_0jTQyDN_ftjnMM4oKWJca2bK_Hn7zeUJbBU4pbt-qJJ-OLgvJ3qbCJtbFq4Jdjh613t4AqHjnBT5DtecIaJAh3bbk8Jb3qtR126DkQN3T2bkO5bRiL66S3j62Dn3oyT0KXp0nMPjly5jtMgOBBJ0yQ4b4OR5JjxonDh83bG7MJPKtfJC8VItKJDP2bP365ITa-PJH-UnLq5FOJgOZ04n-ah02VR53yxO4hDuhKl33tpT-W23M_bcm3UTKsqTdjbuhBPbBbMTiLtbvQHn4KKJxbInfOUJD0-5UyfCjhUJiB58HBan7BhQIXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtpChbCDxjjtbD6cWepJf-K6aK6Q3LRjXb6rjDnCr-RA2XUI8LNDH26O4yPjIKUQTbloKqbPmW4ov-qLIjJO7ttoy3mkJabjuK4-aEfjS567a-fL1Db39hTvMtg3tslrttDToepvoD55c3MkfQ4jdJJQOBKQB0KnGbUQkeq8CQft20b0EeMtjKjLEtR3j3Ru8KJjEe-Kk-PnVeUF8Q4nZKRvHa2kjXU3VLlb4Mb5JKR3sjhI9Xx5PKnjn3N5HKxDEalj2ht3zjlDW3xI8LNj405OTbTADsRbNb66pO-bghPJvyTOXXnO7aM5lXbrtXp7_2J0WStbKy4oTjxL1Db3JKjvMtgDtVJO-KKC5MKIRDfK; BCLID_BFESS=11037166929813919530; BDSFRCVID_BFESS=IeFOJexroG0xWiQDV4eCrph4ZSNbUdrTDYrEQ-mAp1wm6V8VJeC6EG0Pts1-dEu-EHtdogKK02OTHkFF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tbuHVC8htID3qnjpKITaMJF0bMQJ5C62aKDs2qb7BhcqEIL4eJj8yjbBQbDq-TbH-I-JhJ5mMq4MSMbSj4D5X4A33lJwB4QlLaT9aKO4fp5nhMtGb67JDMPF-4bpb4Qy523ioIovQpnOslQ3DRoWXPIqbN7P-p5Z5mAqKl0MLPbtbb0xb6_0jTQyDN_ftjnMM4oKWJca2bK_Hn7zeUJbBU4pbt-qJJ-OLgvJ3qbCJtbFq4Jdjh613t4AqHjnBT5DtecIaJAh3bbk8Jb3qtR126DkQN3T2bkO5bRiL66S3j62Dn3oyT0KXp0nMPjly5jtMgOBBJ0yQ4b4OR5JjxonDh83bG7MJPKtfJC8VItKJDP2bP365ITa-PJH-UnLq5FOJgOZ04n-ah02VR53yxO4hDuhKl33tpT-W23M_bcm3UTKsqTdjbuhBPbBbMTiLtbvQHn4KKJxbInfOUJD0-5UyfCjhUJiB58HBan7BhQIXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtpChbCDxjjtbD6cWepJf-K6aK6Q3LRjXb6rjDnCr-RA2XUI8LNDH26O4yPjIKUQTbloKqbPmW4ov-qLIjJO7ttoy3mkJabjuK4-aEfjS567a-fL1Db39hTvMtg3tslrttDToepvoD55c3MkfQ4jdJJQOBKQB0KnGbUQkeq8CQft20b0EeMtjKjLEtR3j3Ru8KJjEe-Kk-PnVeUF8Q4nZKRvHa2kjXU3VLlb4Mb5JKR3sjhI9Xx5PKnjn3N5HKxDEalj2ht3zjlDW3xI8LNj405OTbTADsRbNb66pO-bghPJvyTOXXnO7aM5lXbrtXp7_2J0WStbKy4oTjxL1Db3JKjvMtgDtVJO-KKC5MKIRDfK; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1648182432,1650348546; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1650348546; ab_sr=1.0.1_NWQwZTNiNzQ5YjU4NmNjZjEzNjIyMjE4MWFmNzBjMDg0MTAwY2NkOGNkNDIyNzI3M2M3YWIwMmYyYzE4NjM0ZTE2ZjZlNzQ1ODliYzQ4M2M1ZGMzOWRhMWVjY2E1NmNiOWUyYWU4OTIwZTViNmFlMWM2MjJmYjlmOTQ5NDY3OWM0YjVlOGI2OGYzYzI0YTVjYzc3MTNhZTA1ZjUyMTI2MDNkODg1YWIxZjNjMWMzMDgyNGZhY2IxZTI2ODAwMzg0";////定义请求头的cookie,与网页上的cookie一致
    header.refer = "https://fanyi.baidu.com/translate?aldtype=16047&query=&keyfrom=baidu&smartresult=dict&lang=auto2zh";//定义请求头的refer,与网页上的refer一致
    var post="from=en&to=zh&query="+con+"&source=txt";//定义post,将FormData拼出来
    var doc = EXTRACT.OpenDoc(CHANN,link,post,header);//打开post请求
    if(doc){
    var str = doc.GetDom().GetSource().ToStr();//打开请求后,将获取请求源码并转为字符串格式
    jScript js;//定义一个js
    var obj = js.RunJson(str);//跑一下js
    var a="";//定义一个变量a
    for(i=0;i<obj.data.length;i++){
    var search=obj.data[i].dst;//取obj中的data中的第i个对象的dst值
    var ttt=search.ReplaceAll("u","\\u");//将search文本中的u用\\u替换
    ttt=ttt.ToStr();//转为字符串
    var trans_con=doc.GetDom().UnEscape(ttt);//unicode转中文
    a+=trans_con;//a为a+trans_con
    }
    re.id=transid;//返回id
    re.trans_con=a;//返回翻译后内容
    RESULT.AddRec(re,this.schemaid);//返回一个数据
    EXTRACT.CloseDoc(doc);//关闭请求,固定搭配
    }
    }


    ⑥采集预览

    点击采集预览,加载片刻后,点击停止测试。



    发现数据都采集出来了,说明配置成功。

     

     

    采集步骤

    模板配置完成,采集预览没有问题后,可以进行数据采集。

    1.建立数据表单

    选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为【fanyi】(注意命名不能用数字和特殊符号),点击【确定】。创建完成,勾选数据表,并点击右上角保存按钮。

     

     

    2.开始采集

    选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。

     

     

    3.导出数据

    采集结束后,可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。

     

     


    4.数据展示

    导出的文件打开如下图所示:

     

     

    *本教程仅供教学使用,严禁用于商业用途!