吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5157|回复: 9
收起左侧

[Python 转载] 某道爬虫

  [复制链接]
.Net_破解 发表于 2019-5-18 18:01
本帖最后由 wushaominkk 于 2019-5-19 19:43 编辑

[Python] 纯文本查看 复制代码
import  urllib.request as ub

import urllib.parse as parse

import time
import random
from hashlib import md5

class youdaoSpider(object):

    def __init__(self,translateWord):
        self.translateWord=translateWord
        self.url="http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
        self.data={} #存储发送的数据
        self.headers={} #存储HTTP协议的报头

    def get_md(self,value):
        '''
        给字符串数据进行md5加密 然后
        :param value: 要加密的md5字符串
        :return:
        '''
        m=md5()
        m.update(value.encode("utf-8"))
        return m.hexdigest()
    def get_sign(self,salt):
        """
        获取sign
        :param salt:md5加密的盐值
        :return:
        """
        value="fanyideskweb" + self.translateWord + salt + "p09@Bn{h02_BIEe]$P^nG"
        return self.get_md(value)
    def get_salt(self,now_t):
        """
        获取要md5加密需要的盐值
        :param now_t:现在的事件截
        :return:
        """
        return  str(now_t+ random.randint(0, 10))
    def sendPost(self):
        """
        发送POST请求
        :return:
        """
        nowtime=int(time.time() * 1000)
        salt=self.get_salt(nowtime)
        sign=self.get_sign(salt)

        print(salt)
        print(sign)
        self.data={
            "i":self.translateWord,
            "from": "AUTO",
            "to": "AUTO",
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": salt,
            "sign": sign,
            "ts": nowtime,
            "bv": "803c04ba5e71dce4e8b081b65a2d3f5b",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_REALTIME",
            "typoResult": "false",
        }

        self.headers={
            "X-Requested-With": "XMLHttpRequest",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36",
            "Cookie": "OUTFOX_SEARCH_USER_ID=550783397@10.168.8.63; OUTFOX_SEARCH_USER_ID_NCOO=1648046863.5938306; JSESSIONID=aaau3c04aBOHla-FvCNDw; ___rl__test__cookies=1543629360108",
            "Referer": "http://fanyi.youdao.com/",
        }

        data=parse.urlencode(self.data).encode("utf-8")
        self.request=ub.Request(self.url,headers=self.headers,data=data)
        return ub.urlopen(self.request)

    def saveData(self,response):
        """
        保存爬去到的数据
        :param response: 获取到的数据
        :return:
        """
        print(response.read().decode("utf-8"))
if __name__ == '__main__':
    translateWord=input("请输入你要翻译的英文单词:")
    spider=youdaoSpider(translateWord=translateWord)
    response=spider.sendPost()
    spider.saveData(response)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

A8888 发表于 2019-5-18 18:36
沙发。。。。。
周峻弘 发表于 2019-5-18 18:47
头像被屏蔽
窝哎PJ 发表于 2019-5-18 22:07
newbie2019 发表于 2019-5-20 20:39
亲测可用,谢谢楼主分享技术!
 楼主| .Net_破解 发表于 2019-5-21 12:10
窝哎PJ 发表于 2019-5-18 22:07
怎么使用。。。。。。。。。。。

用python3直接运行就行
天空宫阙 发表于 2019-5-30 17:47
测试可用;建议复制纯文本中代码,直接点复制代码出现异常缩进
133626096 发表于 2019-8-12 22:12
沙发沙发
头像被屏蔽
jiangxianjun 发表于 2021-1-28 23:42
提示: 该帖被管理员或版主屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表