zoukankan      html  css  js  c++  java
  • 30行爬虫代码实现中英互译

    前言

    最近在学习英语(我是个英语渣渣),加上看英文论文难免少不了要翻译,所以就用python爬虫实现中英翻译的小程序,于是今天就记录一下这个过程,同时也希望分享给粉丝们能够学习,谢谢。

    一、准备工作

    目标网站

    http://fanyi.youdao.com/
    

    这里是选择的有道翻译

    开发环境

    开发工具:Pycharm
    python版本:python3.6.5
    浏览器:Google
    

    二、网页分析

    在Google浏览器中按F12可以查看获取数据包

    翻译请求链接

    http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
    

    这个翻译请求链接,通过这个url与有道服务器进行数据交换

    翻译请求表单

    在FormData里面是发送到请求链接的表单,比如参数i是待翻译的内容

    i:我是李运辰
    

    数据请求响应

    在Response响应数据包里translateResult可以看到响应的内容

    {"translateResult":[[{"tgt":"I'm Li Yunchen","src":"我是李运辰"}]],"errorCode":0,"type":"zh-CHS2en"}
    

    三、代码实现

    请求头Header

    request.add_header('User-Agent',
                           'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')
    

    所需库

    import urllib.request as req
    import urllib.parse
    import json
    

    请求url

    # 输入请求URL
        url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom='
    

    数据包表单

    data = {}
    # 将请求表单以字典的形式写入data传入,i表示需要翻译的内容
    data['i'] = content
    data['from'] = 'AUTO'
    data['to'] = 'AUTO'
    data['smartresult'] = 'dict'
    data['client'] = 'fanyideskweb'
    data['salt'] = '16099982906531'
    data['sign'] = 'a9d35d5d61ef0421160b9d53b6dff04f'
    data['lts'] = '1609998290653'
    data['bv'] = '4f7ca50d9eda878f3f40fb696cce4d6d'
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_CLICKBUTTION'
    

    为了防止乱码,进行UTF-8编码

    urllib.parse.urlencode(data).encode('utf-8')
    

    开始请求

    request = req.Request(url, data)
    response = req.urlopen(request)
    html = response.read().decode('utf-8')
    

    解析结果

    # 根据返回内容获取翻译结果
        target = json.loads(html)
        target = target['translateResult'][0][0]['tgt']
        print(target)
    

    四、测试结果

    中文---->英文

    英文翻译成中文

    当输入!q时,结束程序。

    五、结尾

    OK,以上就是Python爬虫的实现中英互译的过程,记录生活,分享生活,有不明白的小伙伴可以在下方评论交流。好了,期待下次的分享。

    加群获取学习资料

    公众号回复:小白入门

    各种爬虫源码获取方式

    公众号回复:爬虫源码

    ------------------- End -------------------

    分析B站《送你一朵小红花》弹幕评论

    快手解析视频真实链接(爬取快手视频)

    欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

    想加入Python学习群请在后台回复【入群

    万水千山总是情,点个【在看】行不行

     
    【加群获取学习资料QQ群:901381280】
    【各种爬虫源码获取方式】
    识别文末二维码,回复:爬虫源码
    欢迎关注公众号:Python爬虫数据分析挖掘,方便及时阅读最新文章
    回复【开源源码】免费获取更多开源项目源码
    

    ÃæÃìÃâÃèÃÿÃæÃëÃçÃà

  • 相关阅读:
    HDU4474 Yet Another Multiple Problem BFS搜索
    HDU4473 Exam 数学分析
    2013ACM多校联合(4)
    POJ1273 网络流...
    HDU4472 Count 递推
    POJ1149 PIGS 网络流
    UVA10881 Piotr's Ants 想法题
    javascript js string.Format()收集
    修改 设置 vs.net 网站 调试 设为 起始页
    【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
  • 原文地址:https://www.cnblogs.com/chenlove/p/14264706.html
Copyright © 2011-2022 走看看