python 爬取百度翻译
时间: 2023-10-06 15:04:18 浏览: 223
可以使用 Python 的 requests 库和 BeautifulSoup 库来爬取百度翻译。具体步骤如下:
1. 打开浏览器,访问百度翻译页面(https://fanyi.baidu.com/)。
2. 按下 F12 键打开开发者工具,切换到 Network 标签页,选中 XHR(XMLHttpRequest)筛选器。
3. 在输入框中输入要翻译的文本,可以看到浏览器向百度翻译发送了一个 POST 请求(请求 URL 为 https://fanyi.baidu.com/v2transapi?from=en&to=zh)。
4. 点击这个请求,在右侧的 Headers 标签页中,找到请求的 Form Data,这里包含了翻译的参数(例如要翻译的文本、源语言和目标语言等)。
5. 在 Python 中使用 requests 库发送这个 POST 请求,并将参数传递进去。注意,需要添加一个 User-Agent 头部,否则百度翻译会返回 403 禁止访问的错误。
6. 解析返回的 JSON 数据,获取翻译结果。
7. 将翻译结果输出到控制台或保存到文件中。
下面是一个简单的 Python 程序,可以实现上述功能:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://fanyi.baidu.com/v2transapi'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
data = {
'from': 'en',
'to': 'zh',
'query': 'hello',
'transtype': 'translang',
'simple_means_flag': '3'
}
response = requests.post(url, headers=headers, data=data)
soup = BeautifulSoup(response.text, 'html.parser')
result = soup.select('body > p')[0].get_text()
print(result)
```
这个程序可以将英文单词 "hello" 翻译为中文 "你好"。如果要翻译其他文本,只需要修改 data 字典中的 query 参数即可。
阅读全文