爬金山词霸翻译

import json

import requests


class FanyiSpider:
    def __init__(self,fanyi):
        self.url = "http://fy.iciba.com/ajax.php?a=fy"
        self.fanyi = fanyi
        self.headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"}

    #写入from data 在 notwork里面
    def get_post_data(self)
        post_data = {"f":"auto",
                     "t":"auto",
                     "w":self.fanyi}
        #返回data数据
        return post_data

    #请求 URL,带上data跟写好的 headers(注:是告诉浏览器用什么访问的)
    def parse_url(self,url,data):
        response = requests.post(url,data=data,headers=self.headers)
        #返回response内容,decode默认解码utf-8
        return response.content.decode("utf-8")

    def get_ret(self,json_str):
        #获取响应的json数据并转换成字典
        temp_dict = json.loads(json_str)
        print(temp_dict)
        #提取 需要的数据 (注:在Notwork 响应里面有一串json字符串,依照关键字查询)
        ret=temp_dict["content"]["out"]
        print("{}:{}".format(self.fanyi,ret))

    #主程序
    def run(self):
        #调用URL函数
        post_data = self.get_post_data()
        #定义json_str 调用parse_url获取的结果  赋值给json_str
        json_str = self.parse_url(self.url,post_data)
        #调用get_ret函数来打印结果
        self.get_ret(json_str)

if __name__ == "__main__":
    a=input("请输入要翻译的内容:")
    b=FanyiSpider(a)
    b.run()

猜你喜欢

转载自www.cnblogs.com/yl1710/p/10741450.html