爬取搜狗翻译项目实例

        视频中讲解的是百度翻译,但是视频中的方法现在已经不适用了,因为他们对 URL 的参数进行了修改,导致没法直接修改参数来爬取对应的翻译结果,这里我使用搜狗翻译来做演示,原理是一样的。

我们搜索的关键字会返回在 URL 中,后面的无用参数可以删除

删除后

前置知识:

翻译相关的页面有个特点:就是你输入单词后不需要其他操作,页面会自动刷新出新的数据(该数据就是翻译结构)

【页面局部刷新的现象】

如下图所示就是请求回来的翻译结果

所以该数据包就是我们需要捕获的数据包

判断返回数据类型是否为 json

编写代码

import requests
import  json

if __name__ == '__main__':

    post_url = 'https://fanyi.sogou.com/reventondc/suggV3'

    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0'
    }

    word = input('enter a word:')
    data = {
        'from':'auto',
        'to':'zh-CHS',
        'client':"web",
        'text':word,
        'uuid':"5c2d6117-a5e9-482e-abaf-2343abcf3a93",
        'pid':"sogou-dict-vr",
        'addSugg':"on"
    }

    response = requests.post(url=post_url,data=data,headers=headers)

    # json 返回的是一个对象(如果确认响应数据是json类型的才可以使用)
    dic_obj = response.json()

    print(dic_obj)

    file_name = word + '.json'
    fp = open(file_name,'w',encoding='utf-8')
    json.dump(dic_obj,fp=fp,ensure_ascii=False)

注意:

data 字典里的请求参数要补全,不然无法实现

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值