进阶的爬虫2——百度翻译中英互转

爬取百度翻译
首先我们打开网页端,通过检查找到翻译的时候是通过v2transapi响应翻译结果的
进阶的爬虫2——百度翻译中英互转_第1张图片

进阶的爬虫2——百度翻译中英互转_第2张图片

然后我们查看url和data
通过我们用不同的词对比发现data 里面sign和transtype这两个是不同的,而且sign的不同很有可能是随机数,不太容易找到规律,所以我们尝试用手机端看看有没有区别,有没有可能更好爬取。
进阶的爬虫2——百度翻译中英互转_第3张图片
进阶的爬虫2——百度翻译中英互转_第4张图片

我们打开手机端后发现确实手机端并没有那么复杂,也没有什么随机数之类的,所以我们决定在手机端进行操作
进阶的爬虫2——百度翻译中英互转_第5张图片
进阶的爬虫2——百度翻译中英互转_第6张图片
进阶的爬虫2——百度翻译中英互转_第7张图片

具体代码如下:

# coding=utf-8
import requests
import json

headers={"User-Agent": "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"}
url = "http://fanyi.baidu.com/basetrans"

while True:
    home_page = input("请选择需要的功能:1.中文翻译英文 2.英文翻译中文:")
    if home_page == '1':
        query_sys = input("请输入需要翻译的内容:")
        datas = {
            "query":query_sys,
            "from":"zh",
            "to":"en",
        }

    elif home_page == '2':
        query_sys = input("请输入需要翻译的内容:")
        datas = {
            "query":query_sys,
            "from":"en",
            "to":"zh",
        }

    else:
        print('由于你的瞎鸡儿输入,系统决定死给你看')


    response = requests.post(url,data=datas,headers=headers)
    # print(r.content.decode())
    dict_ret = json.loads(response.content.decode())
    ret = dict_ret["trans"][0]["dst"]
    print("翻译结果为 :",ret)

你可能感兴趣的:(爬虫)