Python——网络爬虫抓取有道词典

今天我们来谈谈python的网络爬虫抓取有道词典

抓取有道词典之前,我们需要对有道词典的网页进行分析,在这里我们需要得到有道网页的请求网址,这里的状态码显示200即为表示正常访问。

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'

Python——网络爬虫抓取有道词典_第1张图片

 Python——网络爬虫抓取有道词典_第2张图片

 在请求头的地方我们可以看到'User-Agent' 这里表示的是我们使用什么来访问有道的网页,有些网页可能会禁止python的访问防止服务器崩溃,但这个时候我们只需要在自己的代码里面增加'User-Agent'就可以对浏览器进行欺骗。

 Python——网络爬虫抓取有道词典_第3张图片

import urllib.request
import urllib.parse
import json
import time
while True:
               content = input('请输入需要翻译的内容(输入"e"退出程序):')
               if  content =='e':
                    break
               url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'     #  有道词典的请求网址

               head = { }       #设置一个头部使得浏览器认为不是用python进行访问
               head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0'

               data ={ }

               data ['i'] =  content
               data ['from']  = 	'AUTO'
               data['to'] =	'AUTO'
               data['smartresult']	 = 'dict'
               data['client'] = 	'fanyideskweb'
               data['salt']=	'15565283671426'
               data['sign']=	'135c616fb0ba768c86718a8ae94e31a8'
               data['ts']=	'1556528367142'
               data['bv']=	'e2a78ed30c66e16a857c5b6486a1d326'
               data['doctype'] = 	'json'
               data['version'] = 	'2.1'
               data['keyfrom'] = 	'fanyi.web'
               data['action'] = 	'FY_BY_REALTlME'


               data = urllib.parse.urlencode(data).encode('utf-8')     #对数据进行utf-8的编码模式

               req = urllib.request.Request(url,data,head)    #  填充头部使得浏览器认为不是用python进行运行

               response = urllib.request.urlopen(req)       # 实现对网站进行访问

               html  = response.read().decode('utf-8')     # 对数据进行解码

                
               target = json.loads(html)           #  已编码的JSON字符串解码为python对象
               target = target['translateResult'][0][0]['tgt']    #对输出的target进行格式化的筛选
               print(target)
               time.sleep(5)

 

你可能感兴趣的:(Python)