python爬虫学习day2—百度翻译

##第零步

安装requests库以及了解AJAX请求

##第一步

打开百度翻译网址,随便输入一个英文单词,我们可以发现网页进行了局部刷新,而非整体性的,因此我们可以猜测,这是一个AJAX请求。

##第二步

F12打开控制台,点击网络(network),因为我们已经猜测这是一个AJAX请求,因此我们选择XHR(实现网页得局部刷新)或者叫Fetch/XHR。然后输入一个英文单词,例如write。

我们挨个点击,通过查看表单数据,(ps:如果你没有在标头选项卡下找到表单数据,一般在标头选项卡最下方,可以点击负载就能够找到表单数据)发现有五个sug分别是w、wr、wri、writ、write。因此翻译结果很有可能就在这里,通过查看我们发现url为

https://fanyi.baidu.com/sug

请求方式为post请求,响应标头Content-Type(服务器端返回给客户端的数据类型):为json格式的数据。点击响应,我们可以看到是unicode编码的内容,将内容转译为中文(搜索unicode转中文即可),就是我们要的翻译内容。点击预览,也可以看到就是我们要的翻译内容。

##第三步

首先,由于网站有UA检测反爬,我们进行UA伪装

headers = {"User-Agent": "自己浏览器的标识"}

输入url:

url = "https://fanyi.baidu.com/sug"

因为这个url是post请求,并且携带一个参数,类型为字典,键为kw,值为我们所输入的英文

en = input("请输入要翻译的英文:")
data = {
    "kw": en
}

接着调用requests.post方法,其第一个参数为url、第二个参数为网址所携带的数据、第三个为hearders。

response = requests.post(url,data=data,headers=headers)

由上可知,服务器所返回的数据是json格式的数据,因此我们将所获得的内容解析成json格式传给result。

result=response.json()

result是一个字典,我们只需要键data下的内容。然后我们可以选择直接打印

result = result["data"]
print(result)

或者进行存储

filename = en+".json"
with open(filename,"w",encoding="utf-8") as fp:
    json.dump(result,fp=fp,ensure_ascii=False)
print("yes")

需要注意的是因为json内容中含有中文,因此不能使用ascii码进行编码,要写上ensure_ascii=False。

##最后

本文章中所有内容仅供学习交流使用!

大一新生学习第二天,勿喷。如有错误,烦请指正,谢谢!

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值