cortanaji 2021-12-26 19:26 采纳率: 100%
浏览 60
已结题

Python 爬虫 代码不报错,也不显示爬取内容,不知哪出现问题 ,求解

import requests ... class Youdao(object):

def __init__(self,word):
    self.url =' https":"//fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
    self.headers ={
        'User - Agent'":"' Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 96.0.4664.110Safari / 537.36Edg / 96.0.1054.62'
        'Cookie': 'OUTFOX_SEARCH_USER_ID = -540175604 @ 10.108.160.133;OUTFOX_SEARCH_USER_ID_NCOO = 581892088.1527224;_ntes_nnid = ab0cb59ae64c847ebef8a24ff1b92329, 1637497122770;JSESSIONID = aaa5leUWhsTsv_RtTMH3x;___rl__test__cookies = 1640242400206'
        'Referer'":" 'https: // fanyi.youdao.com /'
    }

    self,formata = None
    self,word = word

    def generate_formdata(self):
        '''

        ts":" r = "" + (new Date).getTime()
        bv":" t,
        salt":" ts + parseInt(10 * Math.random(), 10);
        sign":" n.md5("fanyideskweb" + e + i + "Y2FYu%TNSbMCxc3t2u^XT")

        '''
        ts = str(int(time.time()*1000))
        salt = ts + str(random.randint(0,9))

        tempstr = "fanyideskweb" + self.word + salt + "Y2FYu%TNSbMCxc3t2u^XT"
        md5 = hashlib.md5()
        md5.update(tempstr.encode())
        sign = md5.hexdigest()

        self.formdata = {
            "i": self.word,
            "from":" AUTO",
            "to":" AUTO",
            "smartresult":" dict",
            "client":" fanyideskweb",
            "salt":salt,
            "sign":sign,
            "ts":ts,
            "bv":" 2632875b568a3baf568a14dddf2c8f7f",
            "doctype":" json",
            "ersion":" 2.1",
            "keyfrom":" fanyi.web",
            "action":" FY_BY_REALTlME",
            "typoResult":False
        }

    def get_data(self):

        response = requests.post(self.url,data=self.formdata,headers=
        self.headers)
        return response.content

def run(self):
    #url
    #header
    #formdata
    self.generate_formdata()
    print(self.formdata)
    #发送请求,获取相应
    data = self.get_data()
    print(data)
    #解析数据

if name == 'main':
youdao = Youdao("人生苦短,及时行乐")
youdao.run()

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-12-26 21:02
    关注

    题主从哪搞来的代码,一堆小问题,字符串内容空格乱出现,模块也没导入

    img


    改下面这样就可以了

    img

    import requests
    import time
    import random
    import hashlib
    class Youdao(object):
        def __init__(self,word):
            self.url ='https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
            self.headers ={
            'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
            'User-Agent':'Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/96.0.4664.110Safari/537.36Edg /96.0.1054.62',
            'Cookie':'OUTFOX_SEARCH_USER_ID=136745829@10.108.160.105; JSESSIONID=aaa7_iJauFH2_chADX23x; OUTFOX_SEARCH_USER_ID_NCOO=2021136706.8445046; ___rl__test__cookies=1640522710923',
            'Referer': 'https://fanyi.youdao.com/',
            'X-Requested-With': "XMLHttpRequest",
            }
            self.formata = None
            self.word = word
        def generate_formdata(self):
            '''
            ts":"r = ""+ (new Date).getTime()
            bv":"t,
            salt":"ts + parseInt(10 * Math.random(), 10);
            sign":"n.md5("fanyideskweb"+ e + i + "Y2FYu%TNSbMCxc3t2u^XT")
            '''
            ts = str(int(time.time()*1000))
            salt = ts + str(random.randint(0,9))
            tempstr = "fanyideskweb"+ self.word + salt + "Y2FYu%TNSbMCxc3t2u^XT"
            md5 = hashlib.md5()
            md5.update(tempstr.encode())
            sign = md5.hexdigest()
            self.formdata = {
                "i": self.word,
                "from":"AUTO",
                "to":"AUTO",
                "smartresult":"dict",
                "client":"fanyideskweb",
                "salt":salt,
                "sign":sign,
                "ts":ts,
                "bv":"2632875b568a3baf568a14dddf2c8f7f",
                "doctype":"json",
                "ersion":"2.1",
                "keyfrom":"fanyi.web",
                "action":"FY_BY_REALTlME",
                #"typoResult":False
            }
        def get_data(self):
            response = requests.post(self.url,data=self.formdata,headers=self.headers)
            return response.text
        def run(self):
            #url
            #header
            #formdata
            self.generate_formdata()
            print(self.formdata)
            #发送请求,获取相应
            data = self.get_data()
            print(data)
            #解析数据
    
    
    if __name__ == '__main__':
        
        youdao = Youdao("人生苦短,及时行乐")
        youdao.run()
    
    

    img


    有帮助或启发麻烦点下【采纳该答案】,谢谢~~

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 专家已采纳回答 12月29日
  • 创建了问题 12月26日

悬赏问题

  • ¥15 ubuntu安装gdal后java读取tif文件报错
  • ¥15 请问lammps怎么做两种金属连接的原子浓度分布图
  • ¥15 求jacquard数据集
  • ¥15 w10部分软件不能联网
  • ¥15 关于安装hbase的问题(操作系统-windows)
  • ¥15 novnc连接pve虚拟机报错安全协议不支持262
  • ¥15 设备精度0.03给多少公差能达到CPK1.33
  • ¥15 qt+ffmpeg报错non-existing PPS 0 referenced
  • ¥15 FOC simulink
  • ¥50 MacOS 使用虚拟机安装k8s