python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通

       有些同学一想到爬虫,就觉得很厉害,然后也认为是一个很难学,确实,会爬虫的确是个狠人,爬虫这个东西可以抓取很多东西,但是也并不是那么的难学,入门其实也很简单,爬虫都是一些套路步骤,那么接下来让我们用13行代码制作一个简单的英语翻译器来走进爬虫世界。

       本文章只进行了终端代码的教程和图形化tkinter演绎视频,若想要图形化翻译器代码请评论区回复,那么废话不多说,底层基础咱也不多说了,直接上干粮。

1.爬虫第一步先import requests,requests是对网址发出请求,如果没有requests的要先在终端pip install requests,如果终端提示没有pip的话那就先去文件夹找到pip.exe的绝对路径,复制绝对路径到环境变量的path中,配置环境变量我就不详细多说了。

import requests #import requests

2.第二步:很关键的一步,打开浏览器搜索百度翻译(也可以是其他翻译器),进入后按键盘上的F12,然后根据下面的截图步骤获取得到请求URL:https://fanyi.baidu.com/sug

获取表单数据内容的kw:dog

 获取URL后编写的代码如下:

url='https://fanyi.baidu.com/sug' #定义变量url等于获取的网址

获取的表单数据内容放入集合里的代码如下:

dat={
        'kw': 'dog' #这里就是集合的定义了,kw是键,dog是值,dat为集合的变量名
    }

 因为dog是我们在网页上输入要翻译的单词,这里我们可以是其他单词,即我们可以通过键盘输入单词来翻译,改进代码如下:

word=input('输入内容:')
dat={
        'kw': word #这里将dog替换成word即可
    }

3.第三步:则是用requests发起请求了,这里说一下关于请求的相关内容,requests有两种请求,一种是get请求,即requests.get(),第二种是post请求,即requests.post(),这两种请求用哪一个可以看上面图片的'请求URL'下面显示有请求方法,所以这次请求方法用requests.post()。

req=requests.post(url,data=dat) #发出请求,这里的url和dat就是上面两个代码的url和dat

接下来是获取得到请求后的数据,post的请求方法我们一般是用json获取数据,即上面代码变量名req.json()或用text获取数据,即req.text,然后还要转化成字符串形式再通过正则表达式获取到具体数据,获取数据的代码如下:

不用正则表达式的完整代码及运行结果如下:

import requests

url='https://fanyi.baidu.com/sug'
word=input('输入内容:')
dat={
        'kw': word
    }
req=requests.post(url,data=dat)
result1=str(req.json()) #通过json()获取得到数据后转化成字符串
print('翻译为:',result1) #输出结果

 巧用正则表达式后的完整代码及运行结果如下:

import requests
import re #要用正则表达式需引入re库

url='https://fanyi.baidu.com/sug'
word=input('输入内容:')
dat={
        'kw': word
    }
req=requests.post(url,data=dat)
result1=str(req.json())
reg=re.compile("'v': '(?P<word>.*?)'}") #这行和下面两行代码下个步骤再做解释
result2=reg.search(result1) 
print('翻译为:',result2.group(word))

 4.针对上面的几行代码做解答:

(1)reg=re.compile("'v': '(?P<word>.*?)'}")的讲解

         1.'v': '表示下图没有用正则表达式输出的结果中“dog”后面的'v': '

         2. '}表示下图没有用正则表达式输出的结果中“跟踪”后面的'}

         3. (?P<word>.*?)这个整体的.*?则表示下图输出结果中处于'v': ''}中间部分的内容,即是上               图的运行结果的内容,而?P<word>表示将.*?内容赋给word,便于后面将内容输出在控制               台上

(2)result2=reg.search(result1)的解释, 这里我只要得到下图结果中第一个大括号{}中的内容,所以用的是search方式得到正则表达式解析后的内容,如果想得到下面所有{}中的内容可以用finditer迭代器方式得到,当然也不止是这两种方法得到内容,大家可以自己去查阅资料了解更多。

 (3)print('翻译为:',result2.group(word))解释,通过group得到word变量的内容并输出

5.tkinter图形化翻译器视频演示如下:

图形化也仅用了40行代码写出来 

5.总结:

  1. 打开浏览器进入翻译器页面,输入单词后得到sug的URL网址和表单数据内容
  2. 用requests中post请求方法和json得到数据
  3. 通过正则表达式解析后得到最终翻译的内容
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓小邰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值