爬虫(POST)——有道翻译(有bug)
工具:python3
过程:抓包得到有道翻页面的url;复制post请求头,得到headers中的信息;复制post请求的body,得到formdata中的信息。构造post请求,返回响应
import urllib.request
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36",
"Content-Type": " application/x-www-form-urlencoded",
"X-Requested-With": "XMLHttpRequest"
}
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule "
key = input("请输入需要翻译的文字:")
formdata = {
"i": key,
"from":"AUTO",
"to":"AUTO",
"smartresult":"dict",
"client":"fanyideskweb",
"salt":"",
"sign":"b6871f33bfa94784d832dddbe9fba785",
"doctype":"json&version=2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTIME",
"typoResult":"false"
}
data = urllib.parse.urlencode(formdata)
data = bytes(data, encoding="utf8")
print(data)
request = urllib.request.Request(url, data=data, headers = headers)
print(request)
response = urllib.request.urlopen(request)
print(response.read())
返回error:50
修改url,去掉_o后仍然不能得到正确的信息,,,原来,有道有反爬虫机制!
哈哈哈哈,刚学爬虫,把这个问题先放一下好啦!
我很棒棒哦!
爬虫(POST)——有道翻译(有bug)的更多相关文章
- POST/有道翻译 有bug
1.发现在翻译时地址没有变,那是POST请求. 2.通过fidder抓包工具抓取url 3.对data分析,发现每次salt和sign都在变化. 4.查看源码,先用站长工具http://tool.ch ...
- python爬虫之有道翻译
import urllib.request import urllib.parse import json class Translate(): def __init__(self): ...
- 如何用python“优雅的”调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js“斗争”的过程! 当然,本文仅 ...
- 爬虫新手学习2-爬虫进阶(urllib和urllib2 的区别、url转码、爬虫GET提交实例、批量爬取贴吧数据、fidder软件安装、有道翻译POST实例、豆瓣ajax数据获取)
1.urllib和urllib2区别实例 urllib和urllib2都是接受URL请求相关模块,但是提供了不同的功能,两个最显著的不同如下: urllib可以接受URL,不能创建设置headers的 ...
- python爬虫之有道在线翻译
今天初学了python这门课 老师简单的讲解了一下 python的安装环境,配置环境变量,当前主流Python使用的是3.x版本, 下午简单的讲解了python的起源,发展以及在各个方面的应用 然后晚 ...
- 爬虫模拟有道字典进行翻译,还发现了一条好玩的js
08.14自我总结 爬虫模拟有道字典进行翻译 一.代码 import requests from lxml.html import etree # headers= { # 'User-Agent': ...
- python3爬虫:利用urllib与有道翻译获得翻译结果
在实现这一功能时遇到了一些困难,由于按照<零基础入门python>中的代码无法实现翻译,会爆出“您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai ...
- 爬虫实战2_有道翻译sign破解
目标url 有道翻译 打开网站输入要翻译的内容,一一查找network发现数据返回json格式,红框就是我们的翻译结果 查看headers,发现返回结果的请求是post请求,且携带一大堆form_da ...
- (未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果
环境: 火狐浏览器 pycharm2017.3.3 python3.5 1.url不仅可以是一个字符串,例如:http://www.baidu.com.url也可以是一个Request对象,这就需要我 ...
- java实现有道翻译爬虫
我的博文地址 https://www.cnblogs.com/lingdurebing/p/11618902.html 使用的库 1.commons-codec 主要是为了加密,可以直接用java原生 ...
随机推荐
- R: 自定义函数
################################################### 问题:自定义函数 18.4.29 自定义函数,其返回值是个问题,还有怎么让过程变量成为全局变 ...
- javascript 基础练习 做Bingo图
---恢复内容开始--- <!DOCTYPE html><html> <head> <meta charset="utf-8&q ...
- SDUT 1177 C语言实验——时间间隔
C语言实验——时间间隔 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 从键 ...
- SDUT 3401 数据结构实验之排序四:寻找大富翁.!
数据结构实验之排序四:寻找大富翁 Time Limit: 150MS Memory Limit: 512KB Submit Statistic Problem Description 2015胡润全球 ...
- 多线程学习-基础(七)sleep()和wait()的区别
一.sleep()和wait()的区别共同点:1.他们都是在多线程的环境下,都可以在程序的调用出阻塞指定的毫秒,然后继续往后执行(在当前线程再次拿到cpu的执行权之后).2.wait()和sleep( ...
- C++新标准:列表初始化
一.列表初始化意义 C++新标准为vector提供了一种新的初始化方式:列表初始化.适用于知道多个成员具体值的情况. 二.列表初始化用法 /*1.空vector<int>*/ vector ...
- WPF之MVVM模式(3)
有种想写一个MVVM框架的冲动!!! 1.Model中的属性应不应该支持OnPropertyChanged事件? 不应该.应该有ViewModel对该属性进行封装,由ViewModel提供OnProp ...
- ChineseLunisolarCalendar 农历日期
#region 农历日期 static ChineseLunisolarCalendar cCalendar = new ChineseLunisolarCalendar(); /// <sum ...
- jqueue使用ajax方式
1.get: $.ajax({ type: "GET", url: baseUrl + "Showcontent/del_user?type=1&id=" ...
- Binder学习笔记(十一)—— 智能指针
轻量级指针 Binder的学习历程爬到驱动的半山腰明显感觉越来越陡峭,停下业务层的学习,补补基础层知识吧,这首当其冲的就是智能指针了,智能指针的影子在Android源码中随处可见.打开framewor ...