当前位置:   article > 正文

python爬虫之有道翻译_爬取有道翻译有什么用

爬取有道翻译有什么用

一.前言

自从学了python之后,终于明白了那句“人生苦短,我用python”是什么意思了,哈哈,废话不多说,下文正式开始模拟用户翻译过程。

二.审查请求元素

我们在浏览网站时,往往会需要从网站服务器上请求或者向网站服务器提交一些数据,此时我们的浏览器主要向服务器发送get请求来获取数据,或者发送post请求来提交数据,简而言之,我们可以将这样的用户使用情景模拟出来,下面以有道翻译为例:

在图中可以看到,当用户点击翻译按钮时,浏览器会自动以form_data的形式向服务器发起post请求,发送一些翻译需要的信息,而服务器在接受到请求后会对该请求进行校验,如果检测到是以代码程序的形式进行请求则会进行限制(这个事实上我们填写headers就ok了),或者同一个ip在短时间内大量访问就会被直接封掉(这个问题我们此时不考虑)。在识别为合法的请求后服务器会将结果返回客户端,一般情况下都是json格式

此时我们将相关信息提取出来copy到代码里。

三.实现原理

  1. import urllib.request #导入模块
  2. import urllib.parse
  3. import json
  4. content=input("请输入要翻译的内容:")
  5. head={} #请求头信息
  6. head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
  7. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  8. data={} #请求表单
  9. data['i']=content
  10. data['from']='AUTO'
  11. data['to']='AUTO'
  12. data['smartresult']='dict'
  13. data['client']='fanyideskweb'
  14. data['salt']='15494388925757'
  15. data['sign']='00b84e93f30570e331c01318f59a47f0'
  16. data['ts']='1549438892575'
  17. data['bv']='e40fbeed3cd61fe519ae6051fcce0429'
  18. data['doctype']='json'
  19. data['version']='2.1'
  20. data['keyfrom']='fanyi.web'
  21. data['action']='FY_BY_CLICKBUTTION'
  22. data['typoResult']='false'
  23. data=urllib.parse.urlencode(data).encode('utf-8')
  24. req=urllib.request.Request(url,data,head)
  25. response=urllib.request.urlopen(req)
  26. html=response.read().decode('utf-8')
  27. trans=json.loads(html) #加载为json字典对象
  28. print("翻译结果:",trans['translateResult'][0][0]['tgt'])

url信息我们在post请求中就可以找到,需要注意的是有道翻译的url里边有'_o'的话去掉,应该是对接口进行了升级,我们用旧的接口就好了,data是一个字典,我们直接将form表单中元素copy过来就好了,在这里我们也可以不使用head,直接对url进行请求,但是此种做法容易使得服务器判断出来是机器在爬取而被直接屏蔽,因此我们最好配置user-agent信息。此外req=urllib.request.Request(url,data,head)使用了request类,来对我们的请求头进行包装,为请求增加了head信息,使得爬虫更加安全,但是最安全的方法则是控制访问的时间或者使用代理ip.

四.运行结果

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/855719
推荐阅读
相关标签
  

闽ICP备14008679号