有道词典网页版接口分析与爬虫研究

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除

作者:zhu6201976

一、目标站点

有道词典网页版:网易有道

二、目标接口

url:https://dict.youdao.com/jsonapi_s?doctype=json&jsonversion=4

method:POST

formdata:

如图所示,需要解决参数sign、t的算法逆向,难度:中

三、部分样例代码

1. sign、t参数生成逻辑

    def generate_sign_t(q, w):"""sign/t 生成:params q: 搜索词:params w: 网页中获取return: sign, t"""time_ = len(f'{q}webdict') % 10r = f'{q}webdict'o = hashlib.md5(r.encode('utf-8')).hexdigest()n = f'web{q}{time_}{w}{o}'f = hashlib.md5(n.encode('utf-8')).hexdigest()return f, time_

2. 搜索接口请求构造

            url = f'{self.root_url}/jsonapi_s?doctype=json&jsonversion=4'headers = {'Content-Type': 'application/x-www-form-urlencoded','Referer': 'https://www.youdao.com/',}sign, t = self.generate_sign_t(q)data = {'q': q,'le': 'en','t': f'{t}','client': 'web','sign': f'{sign}','keyfrom': 'webdict'}yield scrapy.FormRequest(url, headers=headers, formdata=data, method='POST', callback=self.parse)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统搭建FastDFS文件服务结合内网穿透实现公网访问本地文件

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C++-基础

C语言介绍 C 是一种通用编程语言,具有高性能、灵活性和广泛的应用领域。它是在 1979 年由 Bjarne Stroustrup 开发的,最初被称为“C with Classes”,随后在 1983 年正式更名为 C。C 基于 C 语言,同时引入了面向对象编程&#xff0…

使用冒泡排序模拟实现qsort函数

目录 冒泡排序qsort函数的使用1.使用qsort函数排序整型数据2.使用qsort函数排序结构数据 冒泡排序模拟实现qsort函数今日题目1. 字符串旋转结果2.杨氏矩阵3.猜凶手4.杨辉三角 总结 冒泡排序 冒泡排序的核心思想是:两两相邻的元素进行比较 代码如下: //⽅法1 void bubble_so…

【Linux】线程的控制

目录 POSIX线程库 常用的POSIX线程库接口声明: 注意事项 创建一个进程 pthread_create函数 参数 返回值 使用示例 线程ID和进程地址空间布局 线程ID 进程地址空间布局 示例图 获取一个进程的线程ID 函数原型 返回值 使用示例 注意事项 线程终止 p…

设计模式系列:责任链模式

简介 责任链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行发送。每个处理者都可以对请求进行处理,或者将其传递给链上的下一个处理者。责任链模式主要应用于面向对象编程中,特别是当系统中的对象需要根据其属性来决定如何处理请…

嘴尚绝美味健康:探索美食背后的健康密码

在快节奏的现代生活中,人们对美食的追求从未停止。然而,随着健康意识的提升,越来越多的人开始关注美食与健康的平衡。今天,我们就来一起探讨“嘴尚绝美味健康”这一话题,看看如何在享受美食的同时,保持身体…

JMeter入门教程 —— 事务!

简介: JMeter中事务的基本介绍 1.任务背景 JMeter中的事务是通过事务控制器实现的。,为了衡量服务器对某一个或一系列操作处理的响应时间,需要定义事务。下面我们详细介绍在JMeter中如何使用事务 2.任务目标 掌握基于JMeter性能测试脚本开…

speccpu2017安装与使用

国产化桌面下Speccpu2017安装与使用 1、 安装依赖库 安装speccpu2017前需要安装依赖包,通过终端命令对依赖包进行安装 sudo apt-get install gcc g gfortran (以上是已经安装好的) 注:若安装不上,需替换/etc/apt下的s…

Docker部署SpringBoot服务(Jar包映射部署)

介绍 项目在docker部署运行以后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。 以下步骤是在不更新镜像和容器的前提下,直接更新jar完成项目更新的操作。 不更新镜像 1. 创建你存放…

几款高效在线文档编辑器推荐,编辑文档更轻松

在数字化时代,文档编辑工作变得越来越重要。无论是工作报告、学习笔记还是创意文稿,一个优秀的在线文档编辑器都能让你的工作事半功倍。现在市面上也有很多优秀的在线文档编辑器,比如WPS Office、腾讯文档、 Microsoft Word Online。今天&…

openGauss_5.0.1 企业版安装及问题记录(CentOS系统):主备模式服务器安装

目录 📚第一章 官方地址📗安装包下载地址📗文档指南 📚第二章 安装📗准备工作📗开始安装📕创建XML配置文件📕初始化安装环境📕执行安装📕验证 📚第…

【数据结构】第三节:单链表

前言 本篇要求掌握的C语言基础知识:指针、结构体 目录 前言 单链表 概念 对比链表和顺序表 创建链表 实现单链表 准备工作 打印链表 创建节点并初始化 尾插 二级指针的调用 尾插代码 头插 尾删 头删 查找(返回节点) 在指定位…

C#硬件接口开发------一文了解WMI

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C# 硬件接口开发 🤝希望本文对您有所裨益,如有不足…

优优嗨聚集团:如何优雅地解决个人债务问题,一步步走向财务自由

在快节奏的现代生活中,个人债务问题似乎已成为许多人不得不面对的挑战。正确处理个人债务,不仅关系到个人信用和财务状况,更是实现财务自由的重要一步。本文将为您提供一些实用的建议,帮助您优雅地解决个人债务问题,走…

设计模式之备忘录模式(下)

3)实现多次撤销 1.结构图 对负责人类MementoCaretaker进行了修改,在其中定义了一个ArrayList类型的集合对象来存储多个备忘录。 2.代码实现 import java.util.*;public class MementoCaretaker {//定义一个集合来存储多个备忘录private ArrayList mem…

学员分享丨十年架构师感悟:敢于“提出问题”

最近呢小誉收到了一位工作十年的学员投稿,这位学员是2011年从誉天学习HCIE课程并顺利拿证,先后在华为等大厂工作。他想把他这十年的工作经验分享给各位学弟学妹们。 这些经验并非来自于具体的技术实现,而是在架构设计和实施过程中所体会到的一…

Github 2024-04-09 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-09统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10Vue项目1JavaScript项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次…

C++生成动态库,C++和C#以及Java在windows和linux调用

Windows生成dllC库 1、创建动态链接库项目 源文件编写函数 // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h"int sum(int a, int b) {return a b; }BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch…

【LAMMPS学习】八、基础知识(1.8)键的断裂

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

取出/var/log/secure中一小时内登录失败超过三次的IP

取出/var/log/secure中一小时内登录失败超过三次的IP 前两个字段是日期,第三个字段是小时,第四个字段是IP cat /var/log/secure | sort -i | awk -F [ :] /Failed/{a[$1" "$2" "$3" "$4" "$(NF-3)]}END{for(i …