爬取有道页面,实现中文翻译成英文:

#_*_ coding: utf-8 _*_

'''
Created on 2018-7-12
@author: sss
功能:爬取有道翻译 '''
import urllib
import urllib.request
import urllib.parse
import urllib.response
from pip._vendor.urllib3.filepost import encode_multipart_formdata
from pip._vendor.distlib.compat import raw_input
import json
import random # url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" #http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule要把_o去掉 #user-agent列表,每次请求随机选一个:
ua_list = [
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0)like Gecko",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X ",
"Mozilla/5.0 (Macintosh; Intel Mac OS "
] user_agnet = random.choice(ua_list) headers = {
"Connection" : "keep-alive",
"Accept" : "application/json, text/javascript, */*; q=0.01",
"X-Requested-With" : "XMLHttpRequest",
"User-Agent" : user_agnet,
"Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8",
"Referer" : "http://fanyi.youdao.com/"
} key = raw_input("请输入需要翻译的文字:\n") formdata = {
"i" :key,
"from " :"AUTO",
"to" :"AUTO",
"smartresult" :"dict",
"client" :"fanyideskweb",
"salt" :"1531403738742", #这个应该是个时间戳
"sign" :"ffa2b29fe52953208226d97a174bcea7", #应该是根据时间戳+你要翻译的内容加密后生成的验证字段
"doctype" :"json",
"version" :"2.1",
"keyfrom" :"fanyi.web",
"action" :"FY_BY_REALTIME",
"typoResult" :"false"
} data = urllib.parse.urlencode(formdata ).encode(encoding='UTF8') #这里后面要加encoding='utf-8' request = urllib.request.Request(url, data = data, headers = headers) html = urllib.request.urlopen(request).read()
print(html) print('完成!') target = json.loads(html)
print("翻译结果:%s"%(target['translateResult'][0][0]['tgt'])) #读出结果 print(headers)

  

5-有道爬虫demo(post)的更多相关文章

  1. # [爬虫Demo] pyquery+csv爬取猫眼电影top100

    目录 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 代码君 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 https://maoyan.co ...

  2. 关于Android程序设计—有道词典demo转移至coding的公告

    有道词典的demo以及解析已转移至Coding https://coding.net/u/monsterLin/p/WebView_YouDao/git

  3. 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面

    由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...

  4. 关于使用Java实现的简单网络爬虫Demo

    什么是网络爬虫? 网络爬虫又叫蜘蛛,网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直 ...

  5. 简单横道图Demo

    代码(每个月都显示整月): @{ ViewBag.Title = "横道图"; Layout = "~/Views/Shared/_Layout.cshtml" ...

  6. 我的图片爬虫demo

    本来是根据scrapy教程写了一个下载图片的简易爬虫,但是搞了一天,死活下载不了图片. 然后换了一个网站,用原生的库写了一个图片爬虫. import urllib.requestimport osde ...

  7. 『Scrapy』全流程爬虫demo

    建立好的爬虫工程如下: item.py 它用来存储解析后的响应文件: # -*- coding: utf-8 -*- # Define here the models for your scraped ...

  8. java编写的一段简单的网络爬虫demo代码

    功能: 从网站上下载附件,并从页面中提取页面文章内容 关于NIO 在大多数情况下,Java 应用程序并非真的受着 I/O 的束缚.操作系统并非不能快速传送数据,让 Java 有事可做:相反,是 JVM ...

  9. sanic+aiohttp爬虫demo(爬图片,新闻,数据)

    直接上代码,都是很简单的一些demo,爬取的网站,都没有什么加密措施,所以应该不涉及违法数据,哈哈 1.爬取网页数据(aiohttp+sanic+scrapy+xpath解析html) from sa ...

随机推荐

  1. 典型的一次jQuery.validate.js 表单中的验证应用

    var validateOption = { onkeyup:false, rules:{ password:{ required:true, remote:{ url:'index.php?app= ...

  2. 数据分析笔试-sql

    题目说明及要求: 以下是模似数据库里的表单信息,请根据要求写出SQL语句 表1:职工信息 表结构如下: 表名:Employee 职工ID   职工姓名       入职年份       部门ID A1 ...

  3. upper_bound函数,binary_check函数

    个人心得:二分的经典运用,刚开始就是upper_bound可能难以实现一点,还有就是要注意没找到的时候 lower_bound 返回大于等于key的第一个元素的下标.upper_bound 返回大于k ...

  4. 如何手玩5h uoj215 果冻运输得到 AC

    最近在大力练习提答颓提答,听说果冻运输很好玩就来试试. 然后玩的停不下来 QAQ ... 于是开一篇博客写一下每个点的解法.(一个个手玩出来的..) 首先我们每次都算什么下一步完后会发生什么在大脑中演 ...

  5. HttpModule和HttpHandler -- 系列文章

    ASP.NET 生命周期 在ASP.Net2.0中使用UrlRewritingNet实现链接重写 IHttpModule实现URL重写 使用IHttpHandler防盗链 HttpModule,Htt ...

  6. php执行多个存储过程(二)

    使用公共连接文件形式 include_once 'inc/conni.php'; $result = mysqli_query($conni, "call proc_test()" ...

  7. php redis 常用方法

    一些php redis 常用的方法: 1.hGet($key,$hashKey) Redis Hget 命令用于返回哈希表中指定字段的值. <?php $redis = new redis(); ...

  8. ClassLoader热加载的简单实现

    当我们在eclipse中修改了一个.java文件时,并通过[ctrl + s ]保存了此java文件,相应的bin目录中,会发现.class文件也发生了修改.通常情况下,java文件是在我们的web项 ...

  9. Svn使用遇到的错误

    1. 权限不足导致的错误

  10. 转:Oracle里几组重要的视图--v$sysstat,v$system_event,v$parameter v$system_parameter

    按组分的几组重要的性能视图 1.System 的 over view v$sysstat , v$system_event  , v$parameter,V$instance得到oracle_sid ...