01爬虫-requests模块post请求

通过requests模块中的post请求爬取某翻译,实现翻译功能

代码以及注释如下

import requests  # 导入requests模块
import json  # 导入json模块

class King(object):
    # 定义通过__init__方法定义初始化的参数
    def __init__(self, word):
        self.url = "https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"  # post请求的网址
        self.word = word  # 需要翻译的数据
        self.headers = {  # 请求头中的参数
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36User - Agent: Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 100.0.4896.127Safari / 537.36",
            "Referer": "https: // fanyi.youdao.com /"
            }
        self.post_data = { #post表单发送的数据
            "i": word,
            "from": "AUTO",
            "to": "AUTO",
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": "16506796553499",
            "sign": "287a1672a69c012dc2e2431fad88f355",
            "lts": "1650679655349",
            "bv": "ac3968199d18b7367b2479d1f4938ac2",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_CLICKBUTTION"
        }

    def get_data(self):  # 定义方法用requests去访问目标地址并return返回的数据
            response = requests.post(self.url, headers=self.headers, data=self.post_data)
            # 默认返回bytes类型,除非确定外部调用使用str才进行解码操作
            return response.content

    def parse_data(self, data):
            # 将json数据转换成python字典
            dict_data = json.loads(data)
            # 从字典中抽取翻译结果
            print(dict_data['translateResult'][0][0]['tgt'])

    def run(self):
        # url
        # headers
        # post——data
        # 发送请求
        data = self.get_data()
        # 解析
        self.parse_data(data)

if __name__ == '__main__':
    # king = King("人生苦短,及时行乐")
    word = input("请输入想翻译的单词")
    king = King(word)
    king.run()
    # python标准库有很多有用的方法,每天看一个标准库的使用

总结一下,大致分为:

1.定义__init__进行初始化,设置url等必须参数
2.定义get_data,函数内部通过requests对目标url进行访问,并且return返回访问的数据
3.定义parse_data函数,将get_data函数teturn返回的json数据,
通过json.loads转换成python字典的格式,在根据字典内容打印对应出翻译的结果
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值