爬虫04_附带功能的爬
02爬取了百度页面
03爬取了搜索页面 有搜索结果 但是没有爬出功能
所以04就来爬功能啦~
爬出来的东西得有用呀
step1
以简单的翻译页面为例icibi在线翻译(其他的比较复杂)
这里的网址其实就是表面,但是我们找的东西不在里面,所以这里的指定url就不能直接复制网址啦~ 得F12去工作台找!
进去之后发现空空如也。
这时候Ctrl+R / F5 , 就刷刷刷出来一堆了~
OMG,这么多!!
分析:翻译功能:选翻译类型????输入翻译文本????翻译按钮
点了之后,就会给服务器发送请求,然后服务器再把翻译的结果返回过来,显示到我屏幕里,也就是叫它动态响应。
用红框框框起来的地方,就是专门捕获动态响应数据的地方!
但是点开后发现,空空如也……
是哪里出了问题吗?
当然不是,是因为我们还没有点击翻译!!
点完后……(适当的按ctrl+R)
这个就是带有翻译功能的url,真正要找的url。
。
这里的意思是:请求索取得到返回的数据是json格式的。如果你要问后面还有个text,那就说明返回的值有两种形式,都可以试一下,不同网站有不同的类型,越高级的网站加密的就越复杂。
返回的值时json类型的,所以到时候我们直接用json解码就好啦。
往下翻会看到From Data,也就是发给服务器的参数,这里f也就是from,t是to,w就是输入的翻译文本,我这里是自动检测,所以f和t都是auto。
切记,这组数据是用字典封装的,我们先把它弄到pycharm里~
data = {
'f':'auto',
't':'auto',
'w':'reptile'
}
step2
import requests
import json #引入这个模块是为了解码
#指定辛苦找到的url
url = 'http://fy.iciba.com/ajax.php?a=fy'
#伪装信息
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52'
}
#输入翻译词
word = input('请输入翻译词:')
#这里就是from data里面的了
data = {
'f':'auto',
't':'auto',
'w':word
}
以上都是比较基础的动态获取,用input实现了一个动态翻译的效果,可以多加两个input来实现自行选择翻译语种,具体每种语言的代号就去抓包工具里找哦~
接下来的代码就要好好学啦~
#发送请求。 .content是转成二进制的意思 .decode()是指定编译格式,默认编码为字符串编码
response = requests.post(url=url, headers=header, data=data).content.decode()
# 用json模块的loads实现把爬下来的数据转换成我们能看懂的数据
# 这里大家可以打印一下response看一看数据就知道了~要多实践哦
a = json.loads(response)['content']
b = a['word_mean']
print('----------------------------------')
for i in b:
print(i)
print('----------------------------------')
print('完成')
至于为什么要[‘content’]和[‘word_mean’],是因为爬取下来的是一个字典,我们需要的翻译在字典的字典里,经典套娃…然后再遍历出我们要的翻译。
学习参考:https://blog.csdn.net/BcXbHello/article/details/110289015
。
补充:
只要是中译英就会报错(不管是auto-auto还是zh-en都会报错)
英译中就不会报错(auto或者en-zh都不会报错)
为啥呢???
推荐阅读
-
爬虫04_附带功能的爬
-
【Python爬虫案例学习】python爬取淘宝里的手机报价并以价格排序
-
Python最简单的图片爬虫,只用20行代码爬遍全网
-
Nginx简单部署实现反向代理的功能,附带资源包
-
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
-
ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
-
Python爬虫爬取有道实现翻译功能
-
通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息
-
用Python爬取了拉勾网的招聘信息+详细教程+趣味学习+快速爬虫入门+学习交流+大神+爬虫入门
-
神箭手云爬虫-爬取携程【国际】航班/机票信息-利用python解析返回的json文件将信息存储进Mysql数据库