记录维维的每一篇Hello World

image.png

需要安装的第三方库

  1. pip install requests


爬取步骤

一、获取请求url以及请求数据

1、首先前往百度翻译 ,在下面这个页面输入想要翻译的文本
image.png
2、在这个页面按下F12打开开发者页面,点击网络,再点XHR进入如下页面,找到sug的请求
image.png
3、里面的请求url就是我们需要的,请求方法是post
image.png
4、往下滑的,看到User-Agent也是我们需要的image.png
5、点击负载,可以看到请求的数据image.png
6、点击预览可以看到返回以下的内容

image.png二、基本的请求过程

有了请求url,请求方法,请求数据格式,我们就可以开始写一个简单的翻译请求过程

  1. # 请求url
  2. sug_url = 'https://fanyi.baidu.com/sug'
  3. # 请求数据
  4. key_word = "我爱你"
  5. data = {'kw': key_word}
  6. #请求头
  7. header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
  8. "Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.30"}
  9. # 请求方法
  10. response = requests.post(sug_url, data=data, headers=header)
  11. # 设置编码
  12. response.encoding = 'utf-8'
  13. # 获得json数据
  14. result = response.json()
  15. # 打印数据
  16. print(result)

完整源码

  1. #!../venv/Scripts python
  2. # -*- coding:utf-8 -*-
  3. # Project: 百度翻译
  4. # Created by 维维
  5. import requests
  6. import itertools
  7. def baidu(key_word):
  8. # 请求链接
  9. sug_url = 'https://fanyi.baidu.com/sug'
  10. # 请求数据
  11. data = {'kw': key_word}
  12. # 请求头
  13. header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
  14. "Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.30"}
  15. # 请求方法
  16. response = requests.post(sug_url, data=data, headers=header)
  17. # 设置编码
  18. response.encoding = 'utf-8'
  19. # 得到json数据
  20. result = response.json()
  21. # 打印结果
  22. if not result['errno'] == 0:
  23. # 翻译错误
  24. print(f'翻译错误: {key_word}\n')
  25. elif len(result['data']) == 0:
  26. # 翻译失败,打印原文
  27. print(f"原文: {key_word}")
  28. print(f"翻译: {key_word}\n")
  29. else:
  30. for res in result['data']:
  31. # 打印翻译
  32. print(f"原文: {res['k']}")
  33. print(f"翻译: {res['v']}\n")
  34. if __name__ == '__main__':
  35. # 生成迭代器
  36. m = itertools.count(1)
  37. while True:
  38. # 输入需要翻译的文本
  39. keyword = input(f'[{m.__next__()}] 请输入翻译原文:')
  40. # 输入q退出
  41. if keyword == 'q':
  42. break
  43. # 翻译
  44. baidu(keyword)

python环境

电脑:Windows10

python:3.8.8(建议3.7以上)

最新版requests(版本影响不大)