• 爬虫(一)百度翻译


    本文目的:输入单词给出翻译;得到翻译结果源代码。

    本文使用firefox浏览器,参考众多博客总结步骤如下:

    ①打开https://fanyi.baidu.com/?aldtype=16047#auto/zh,这是最开始从百度搜索里进去的百度翻译的网址,首先空白处右键选择【查看元素】,【网络】,刷新,【XHR】:

    xhr:XMLHttpRequest在后台与服务器交换数据,这意味着可以在不加载整个网页的情况下,对网页某部分的内容进行更新。更新部分一般情况为json格式

    ②在页面处随意输入一个单词,查看页面元素里【XHR】的变化:

    可以看见,增多了一些名为sug的文件,其类型是json,方法为post。

    ③双击打开任意一个sug,查看其中的数据信息:

    可以看见,sug文件中的数据信息是翻译结果,它是以utf编码存储的,而且是一个字典{"errno":0,"data":[{}]}的形式,最里面的字典就是我们得到的翻译结果,翻译结果的第一组kv就是我们需要的,其余为联想翻译结果。所以我们要做的事情就是,先把这个字典取出来,再["data"][0]["v"]就能够准确搜到我们需要的翻译结果。

    ④代码部分:

    import requests
    import json
    url = "https://fanyi.baidu.com/sug"
    # 定义请求的参数
    data = {'kw': 'world'}
    # 创建请求, 发送请求, 爬取信息
    res = requests.post(url, data=data)
    # 解析结果
    str_json = res.content.decode("utf-8")
    myjson = json.loads(str_json)
    print(myjson)
    print(myjson['data'][0]['v'])

    代码结果为:

    如果说想要实现在线翻译,修改如下:

    import requests
    import json
    url = "https://fanyi.baidu.com/sug"
    # 定义请求的参数
    word=input("give a word:")
    data = {'kw': word}
    # 创建请求, 发送请求, 爬取信息
    res = requests.post(url, data=data)
    # 解析结果
    str_json = res.content.decode("utf-8")
    myjson = json.loads(str_json)
    print(myjson)
    print(myjson['data'][0]['v'])

    代码结果为:

    好,以上工作告一段落。上述可以实现单词的翻译

    import requests
    import json
    url_post = "https://fanyi.baidu.com/sug"
    headers={
        "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0"
    }
    data={
        "kw": "dog"
    }
    
    try:
        response=requests.post(url=url_post,data=data,headers=headers)
        if response.content:
            str_json=response.content.decode("utf-8")
            dic_obj = json.loads(str_json)
            fp = open("C:/Users/Administrator/Desktop/dog.json","w",encoding="utf-8")
            json.dump(dic_obj,fp=fp,ensure_ascii=False)
    except ConnectionError:
        print('error')
     
  • 相关阅读:
    Mysql InnoDB引擎下 事务的隔离级别
    Spring 两大核心 IOC 和 AOP
    java 冒泡排序
    MyBatis 传入List集合作为条件查询数据
    fastfusion运行
    数据集
    工具学习
    三维重建
    Scrivener破解
    博客园设置
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/12435199.html
Copyright © 2020-2023  润新知