• python学习(四)--POST请求


    from urllib import request
    import urllib
    import re

    #网页版有道翻译是ajax的post请求。

    #浏览器请求地址http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
    #但是在抓取时,路径有所变化,具体原因不明。后续要了解下 translate_o -》 translate
    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

    #搜狗浏览器的 模拟浏览器
    header = {"User-Agent":
    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"
    }
    key = str(input("请输入要翻译的词语:"))
    #key = "中国"

    #这个formData是浏览器发送请求copy过来的
    formData = {
    "i":key,
    "from":"AUTO",
    "to":"AUTO",
    "smartresult":"dict",
    "client":"fanyideskweb",
    "salt":"15536694414373",
    "sign":"cddcc6c6092b57a04c546a2e075e2218",
    "ts":"1553669441437",
    "bv":"f355c521b6e13c15aa35c72a097b7786",
    "doctype":"json",
    "version":"2.1",
    "keyfrom":"fanyi.web",
    "action":"FY_BY_REALTlME",
    "typoResult":"false"
    }

    data = urllib.parse.urlencode(formData).encode(encoding = 'utf-8')
    #当请求中存在data时就属于POST请求
    req = request.Request(url, data = data , headers= header)

    result = request.urlopen(req).read().decode()

    print(result)

    #用正则取出有用数
    pattern = r'"tgt":"(.*?)"}'

    va = re.findall(pattern, result)

    print(va)
  • 相关阅读:
    六个月的实习
    cookbook学习第二弹
    cookbook学习第一弹
    maketrans translate
    Python strip函数用法小结
    【翻译】How To Tango With Django 1.5.4 第一章
    os相关方法总结
    python基础(一)
    bash快捷键
    Linux基本命令
  • 原文地址:https://www.cnblogs.com/fuguang/p/10607974.html
Copyright © 2020-2023  润新知