码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫百度翻译

时间:2018-08-04 15:50:37      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:else   结果   pre   运行   input   user   pos   nic   scribe   

  • python3,爬取的是百度翻译手机版的网页

  • 运用requests,json模块

  • 英汉互译,运行结果

技术分享图片技术分享图片

#!/bin/python3
# -*- coding: UTF-8 -*-

#=============================================
#describe:an en to zh and zh to en translater
#version:1
#update:2018-08-03
#---
#author:unihon
#E-mail:unihon@outlook.com
#github:https://github.com/unihon
#=============================================

import requests
import json

def trans():
    userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
    
    header = {
            "Host": "fanyi.baidu.com",
            "Origin": "http://fanyi.baidu.com",
            "User-Agent": userAgent
            }

    postUrl="http://fanyi.baidu.com/basetrans"

    wd = input("please input a word: ")
    print(-------------------------------)
    if wd == ‘‘:
        trans()
        return
    
    for c in wd:
        if c < u\u4e00 or c > u\u9fa5:
            print([en to zh]\n)
            mdata = {
                    "from":"en",
                    "to":"zh",
                    "query" : wd
                    }
            break
        elif c == wd[-1]:
            print([zh to en]\n)
            mdata = {
                    "from":"zh",
                    "to":"en",
                    "query" : wd
                    }
    try:
        response = requests.post(postUrl, data = mdata, headers = header)
    except:
        print(connect error!)
        return 1

    result = response.text
    result=json.loads(result)
    
    if len(result["dict"]) == 0:
        print(is null)
    else:
        try:
            for i in result["dict"]["word_means"]:
                print(> + i)
        except KeyError:
            print(key is null)

if __name__ == "__main__":
    print("===============================")
    trans()
    print("===============================")
  • 小结

需要注意的是,爬到的json数据,中文一般是unicode编码的形式,可以用json模块处理。

python爬虫百度翻译

标签:else   结果   pre   运行   input   user   pos   nic   scribe   

原文地址:https://www.cnblogs.com/unidl/p/9418661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!