python爬虫实例——基于python实现有道云翻译接口
# 分析包
# 分析post请求中参数
# 使用python模拟lts、sign、salt参数运算
# 执行结果
> > 1、按F12对网页进行分析,填写内容后自动翻译的功能一般是通过ajax实现的,所以可以有目的的对xhr包进行筛选,如果不知道这个点也可以一个个包进行查看分析,找包里面有需要翻译的内容和翻译结果




> > 2、分析发送请求中参数的参数,发送两次请求也就是翻译两次,对两次的包进行分析,可以发现每次发送的请求中salt、sign、lts的数据都不同,所以该网站可能是通过js对这些数据进行了处理


> > 3、寻找到这些参数运算的过程。点击Initiator(表示连接由谁发起),找到另一个包,在该包中分析salt、lts、sign运算过程


> 这里需要一些js知识,但一般学过其他语言也可以很清楚发现 lts是时间戳
> salt是在==时间戳后面==随机加上一个0-9的数字
> sign是对“fanyideskweb”+ e + i +"Y2FYu%TNSbMCxc3"进行==hash==运算,然后回看发送请求中sign的参数,发现他是16进制,所以最终结果我们也要以16进制展现
> e是我们输入的需要翻译的内容,i和salt相同 看不懂代码的话可以复制代码到console中看运算结果,例:

==e==可以通过设置断点来判断,断点设置好后,再翻译一次,然后把鼠标箭头放在e上,可以很明显的发现e的取值与我们输入的内容相同

到现在,我们把发送post请求需要的所有参数找到了,然后就是用python模拟这些参数的运算。
> > 4、模拟lts、salt、sign参数运算
模拟lts,lts是时间戳
使用time模块就行了
```python
lts = int(round(time.time()*1000))
```
模拟salt,salt是时间戳后面加上一个0-9的随机数
```python
salt = str(lts) + str(random.randint(0,9))
```
模拟sign,需要使用到hashlib库(自带的库不用安装)
```python
#创建hash对象
md5 = hashlib.md5()
#向hash对象中加入需要hash运算的字符串
n = 'fanyideskweb' + self.kw + salt + 'Y2FYu%TNSbMCxc3t2u^XT'
md5.update(n.encode())
#转换成16进制
sign = md5.hexdigest()
```
5、执行结果

python爬虫实例——基于python实现有道云翻译接口的更多相关文章
- 有道云翻译接口 Show类
package com.yangchong.fanyi; import java.awt.EventQueue;import java.awt.Toolkit; import javax.swing. ...
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- python爬虫-基础入门-python爬虫突破封锁
python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...
- Python 爬虫实例
下面是我写的一个简单爬虫实例 1.定义函数读取html网页的源代码 2.从源代码通过正则表达式挑选出自己需要获取的内容 3.序列中的htm依次写到d盘 #!/usr/bin/python import ...
- python爬虫实例大全
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- shell及Python爬虫实例展示
1.shell爬虫实例: [root@db01 ~]# vim pa.sh #!/bin/bash www_link=http://www.cnblogs.com/clsn/default.html? ...
- 又面试了Python爬虫工程师,碰到这么几道面试题,Python面试题No9
第1题:动态加载又对及时性要求很高怎么处理? 如何知道一个网站是动态加载的数据? 用火狐或者谷歌浏览器 打开你网页,右键查看页面源代码,ctrl +F 查询输入内容,源代码里面并没有这个值,说明是动态 ...
随机推荐
- IDEA 超实用使用技巧分享
前言 工欲善其事 必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优 ...
- When do we pass arguments by reference or pointer?
在C++中,基于以下如下我们通过以引用reference的形式传递变量. (1)To modify local variables of the caller function A reference ...
- OSGI与Spring结合开发web工程
简介: 作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标.Spring 是一个著名的 轻量级 J2 ...
- Js和Thymeleaf如何获取model中的值
一.Jquery获取Model中的数据 1.将model中的值赋给hidden,然后Js获取隐藏域的值. 后台的实现: @RequestMapping("/QEditorMod1" ...
- matplotlib 画图中图和次坐标轴
一: fig.add_axes 画图中图 fig = plt.figure() x = np.arange(1, 9, 1) y = np.linspace(1, 10, 8) left, botto ...
- 注册页面html版本
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Win7远程连接问题:凭据不工作 & 没有授权此用户账户
一 您的凭据不工作 1.问题描述 win7系统远程桌面到某个电脑的一个账户名为admin 的用户,但提示"您的凭据不工作,之前连到 *.*.*.*的凭据无法使用,请输入新凭据",即 ...
- Windows11下载地址
10月5日微软推出了Win11正式版本,但是仍然不支持apk格式,不免让人失望.下面是Win11商业版本下载地址: 下载地址1: ed2k://|file|zh-cn_windows_11_busin ...
- ftp:500 Illegal PORT command. 425
局域网用FTP命令访问外网的FTP SERVER,执行任何命令(如dir,ls,put,get)总是报下面的错误ftp:500 Illegal PORT command. 425ftp:Use POR ...
- Mybatis批量插入写法
<insert id="insertBatchList"> INSERT INTO tag ( `tag_name`, `tag_weight`, ) VALUES & ...