Pyhton网络爬虫实现单词简单矫正

使用requests爬取百度翻译实现英文单词简单矫错
在这里插入图片描述
首先选择百度翻译的原因:
当我们输入一个拼写错误的单词时,它会提示你可能正确的单词,根据这个原理,实现单词的矫错。
在这里插入图片描述

我们要做的就是把翻译,还有这个可能正确的单词提取出来。
在这里插入图片描述
在这里插入图片描述
用Chrome浏览器F12审查元素,可以找到翻译URL,请求方式为POST,然后进行Header参数,DaTa参数的构建
base_url = ‘https://fanyi.baidu.com/sug
data = {
‘kw’: content #我们所输入的关键字
}
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36’,
‘Content-Length’: str(len(data))
}
返回结果为json格式,导入json包处理,然后进行遍历,把结果提取出来。
for item in json_data[‘data’]:
response = [item[‘k’] + item[‘v’]]
print(response)
接下来一个小难点是找到提示的正确的单词,还是通过F12,审查元素在这里插入图片描述
观察其Headers头部可以找到url地址,发现其是Get方法请求。最后做一个判断,如果单词正确打印出翻译,如果不正确,通过此方法找到正确的单词,再进行翻译。

完整代码奉上。。。。。

‘’’
用 requests库构建简单的网络爬虫,对百度翻译进行抓取,实现对所输入单词的翻译与简单矫正
‘’’
import requests
import json
import sys
def baidu_spider(content):
‘’’
通过分析百度翻译网页,发现所有结果是以POST方式返回。分析其headers,data参数,进行headers,data的封装,
在这里发现data参数只有一个"kw",经分析就是我们所输入的单词,headers头部中Content-Length很重要,表示参数经解码后
的长度,requests库可以自行解析,User-Agent,防止反爬
‘’’
base_url = ‘https://fanyi.baidu.com/sug
data = {
‘kw’: content
}
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36’,
‘Content-Length’: str(len(data))
}
response = requests.post(base_url,data=data,headers=headers)
#返回的结果是json模式,所以用json模块处理
json_data = json.loads(response.text)
# print(response.text)
# print(type(response.text))
# print(json_data)
# print(type(json_data))
for item in json_data[‘data’]:
response = [item[‘k’] + item[‘v’]]
print(response)
# 如果单词拼写错误,返回的列表为空,做一下简单判断。
if len(json_data[‘data’]) == 0:
response = requests.get(‘https://correctxt.baidu.com/correctxt?&text={}&ie=utf-8&version=0’.format(content))
item = response.text
item = json.loads(item)
print(“你输入的单词 {} 有误,正确的单词可能是”.format(content)+ " " +item[‘correctxt’])
correct_word = item[‘correctxt’]
baidu_spider(correct_word)

if name == ‘main’:
while True:
content = input(“关闭程序请输入“退出”,请输入你的单词:”)
if content == ‘退出’:
sys.exit()
baidu_spider(content)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值