zoukankan      html  css  js  c++  java
  • Python爬虫 — 百度翻译

    一、基本思路

    1. 打开F12

    2. 尝试输入单词girl,会发现每敲一个字母后都有请求

    3. 请求地址是http://fanyi.baidu.com/sug

    4. 利用NetWork-All-Hearders,查看发现Fromdata的值是 kw:girl

    5. 检查返回内容格式,发现返回的是json格式的内容,所以需要用到json包

    二、实现过程

    from urllib import request,parse
    import json
    # 伪造ua
    from fake_useragent import UserAgent
    import chardet
    
    baseurl = 'https://fanyi.baidu.com/sug'
    kw = input("请输入你要翻译的单词:")
    # 存放用来模拟form data的数据一定要是dict格式
    data = {
        'kw': kw
    }
    
    # 需要使用parse对data进行编码
    data = parse.urlencode(data).encode()
    
    # 伪造一个随机的ua
    ua = UserAgent()
    
    # 构造一个请求头
    # request要求传入的请求头是一个dict格式
    headers = {
        # 因为使用post,至少应该包括Content-Length字段
        'Content-Length': len(data),
        'User-Agent': ua.random
    }
    # 为了更多地设置请求信息,单纯的urlopen函数不够用了
    # 使用Request类来模拟请求信息
    r = request.Request(baseurl, data, headers)
    rsp = request.urlopen(r)
    temp = rsp.read()
    # 自动检测编码
    codeset = chardet.detect(temp)
    json_data = temp.decode(codeset.get('encoding', 'utf-8'))
    
    json_data = json.loads(json_data)
    print("释义如下:")
    for item in json_data['data']:
        print(item['k'],":",item['v'])

    三、运行结果

  • 相关阅读:
    IP和MAC
    ASCII,Unicode 和 UTF-8
    php(PHP Hypertext Preprocessor)随笔1
    css层叠样式表 (Cascading Style Sheets)初识
    ansible部署
    mysql三种备份方式
    nginx反向代理,负载均衡,动静分离,rewrite地址重写介绍
    Maven安装和配置
    jenkins之Tomcat7+jdk1.7+jenkins
    CentOS 7.0如何安装配置iptables和seLinux以及firewalld
  • 原文地址:https://www.cnblogs.com/yytest/p/13259907.html
Copyright © 2011-2022 走看看