基于爬虫的一个小操作
就拿“百度翻译”来作为例子
首先导包
import requests
其次,我们要访问这个网站,我把它粘贴到这里
https://fanyi.baidu.com
假如我们输入一个单词,word。我们可以发现,输入单词后,网页并不是跳转了,而是在当前网页显示出翻译结果,因此,我们可以判断出这是ajax的请求操作,那就需要我们打开抓包工具了
-----------------------------------------------------------------------
抓包工具打开,我们看到框里的sug显示的是我们需要的单词翻译
(如果打开没有这个,可以重新进入网址,因为这个翻译是个请求,你需要打开抓包工具后,再输入查询的单词,就可以了)
也就是说,如果我们获取到了这个sug的内容,我们就得到了翻译数据。
我们点击Header,看到
Request URL: https://fanyi.baidu.com/sug
继续向下看
Request Method: POST,是个post请求
继续向下
content-type: application/json,是json型的
最后,我们发现,kw:dog(这里注意,kw:dog上面是Form Data,以后爬其他的时候,碰到的可能不止这一个数据,到时候根据情况自行修改)
就是我们输入的单词查询
接下来写代码
#-*-coding:utf-8-*-
import requests
if __name__=="__main__":
#访问的地址
post_url="https://fanyi.baidu.com/sug"
#UA伪装
headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1.9171"}
word = input("输入要查找的单词:")
data = {"kw": word}
a = requests.post(url=post_url, data=data, headers=headers)
interpreter=a.json()
print(interpreter)
完成
但
是
!
这样看有点丑,我们根据字典和列表的一些函数,修改为我们看的翻译就行了
实际上把最后一句代码改成
print(interpreter.get("data")[0].get("v"))
就可以了
搞定
最后,我是通过B站 “up路飞学城” 学习的,刚入手的菜鸟,仅记录我的代码学习,如有更恰当的方式,可以指出来,当然,如有问题也可以共同探讨,共勉。