发布时间:2017-11-28 21:22:26编辑:Run阅读(5442)
python爬虫实现百度译文本
打开百度翻译网站地址,F12审查元素,我这里用的是火狐浏览器
点网络,会发现很多GET,POST请求,右边消息头那里会有很多信息:请求地址、请求方法、远程地址、状态码、server、等等之类的信息
这里的请求地址才是翻译的实际地址,看上图
在客户端和服务器之间进行请求,响应的时候,两种最常用的方法就是get,post
get:定义上来说,是指向服务器请求获得数据
post:是向指定服务器提交被处理的数据
点开一个post请求看看里面的内容
里面会有一些表单数据,query:你好,这个你好就是我们刚刚输入翻译的内容,有了这些信息,我们就可以写爬虫调用了
代码如下
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' import urllib.request #导入urllib.request模块 import urllib.parse #导入urllib.parse这个是用来解析的 import json # json 为轻量级的数据交换格式 input_shuru = input('输入要翻译的内容:') #输入要翻译的内容 url = 'https://fanyi.baidu.com/v2transapi' #实际翻译地址 webheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'} # 模拟火狐浏览器访问 headers = webheaders # headers 请求消息头,上面设置了一个浏览器消息头,直接调用 req = urllib.request.Request(url,headers) #加上url,headers构成一个完整的访问请求 data = {} #data 是一个空的字典,下面把百度翻译表单数据里面的参数都添加进去 data['from'] = 'auto' data['to'] = 'auto' data['query'] = input_shuru #把要翻译的内容赋值过来 data['transtype'] = 'translang' data['simple_means_flag'] = '3' #data需要用到urllib.parse.urlencode()函数进行编码 #注意 encode是进行编码 ,decode进行解码 data = urllib.parse.urlencode(data).encode('utf-8') response = urllib.request.urlopen(req,data) #打开目标网站 html = response.read().decode('unicode_escape') #读取目标网站并解码成汉字(unicode_escape) target = json.loads(html) #把上面的字符串结果用 json 封装成字典 print('翻译结果为',target['trans_result']['data'][0]['result'][0][1]) #输出结果
应该看到的结果
上一篇: python爬虫之 URL的一般格式
下一篇: python标准库--logging模块
47606
45987
36909
34470
29082
25713
24566
19715
19248
17756
5566°
6155°
5691°
5737°
6706°
5483°
5484°
5989°
5965°
7295°