当前位置:   article > 正文

爬虫之翻译数据抓取_微软翻译抓包

微软翻译抓包

如果直接使用百度翻译的网址
百度翻译的网址
能得到一个百度翻译对应的页面,但是这个页面不是我们需要的,我们需要的是输入相应的文字之后能够得到对应内容的翻译
此时如果我输入dog进行翻译之后
dog百度翻译的图片会发现dog对应的url的内容如下:
dog对应的url内容
仔细观察之后发现,将对应网址中的dog内容删除之后,页面重新进行了一次刷新,页面对应的网址变回原来的百度翻译界面
而录入dog之后,没有触碰任何的界面,它又自动刷新,我们碰到了一个页面的局部刷新内容,我们知道页面的局部刷新可以通过阿贾克斯的内容实现。此时我们打开相应的抓包工具,捕获相应的阿贾克斯请求
抓包工具中的xhr为阿贾克斯对应的请求,
dog翻译对应的内容
第一个sug请求方式为post,传入的数据为d,第二个sug请求方式为post,传入的数据为do
第二个sug的post请求每输入一个字符,就会对应的发起一个阿贾克斯请求,输入dog的时候总共发起了三个阿贾克斯请求,
对应的阿贾克斯请求可以看出这是一个post请求,然后我们查看post请求传入的参数,
post请求传入的参数可以看出这里传入的参数为dog,再查看response的响应内容
response的响应内容可以看出返回的对应数据就是一个dog内容的数据,所以返回的是一个post请求(携带了参数),响应数据是一组json数据,这组数据就是dog串返回的一个json结果。
在抓包工具之中有个Content-Type之中能看到返回的json数据
返回数据的类型对应的源代码如下:

import  requests
import  json
#1.指定url
post_url = 'https://fanyi.baidu.com/sug'
#2.进行UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
#3.post请求参数处理(同get请求一致)
word = input('enter a word:')
data = {
    'kw':word
}
#4.请求发送
response = requests.post(url=post_url,data=data,headers=headers)
#post(url,data,json,kw,),这里面data所携带的数据相当于get当中的param的
#对应的参数,data也赋值一个字典类型的数据
#5.获取响应数据,json()方法返回的是一个obj (如果确认响应数据是json类型的
#才可以hi用json()方法进行返回)
dic_obj = response.json()
fileName = word+'.json'
fp = open(fileName,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print('over!!!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/101679
推荐阅读
相关标签
  

闽ICP备14008679号