用同事电脑登了一次百度账号,搜索框就被他用Python监控了
2023-03-14 09:35:37 时间
事情是这样的,由于昨天上班忘带笔记本了,就临时用了一下同事王大国的笔记本电脑,中间偶然登了一下百度地图开放平台的账号,没想到他今天给我发来这个:
![用同事电脑登了一次百度账号,搜索框就被他用python监控了](https://s4.51cto.com/oss/202101/16/6c02d73847ead62f554d3f5ec74ad89b.png)
尴尬的想找个地缝钻进去
经过一番询问,他终于道出了实情,原来百度的账号会自动同步。
例如,在登录了网页版的百度地图、百度API等账号后,浏览器会自动保持,你的所有百度账号就自动登上了。
当你使用已登录百度账号手机或电脑的百度搜索框时,他那里就会自动弹出历史搜索记录,如下图:
![用同事电脑登了一次百度账号,搜索框就被他用python监控了](https://s4.51cto.com/oss/202101/16/86b2a4460b4cb330c0d5fcbb27631561.png)
然后可以用python爬虫定时获取搜索记录
首先抓包获取数据接口:
![用同事电脑登了一次百度账号,搜索框就被他用python监控了](https://s5.51cto.com/oss/202101/16/523bbb5a5e4dc78062eb7e0e9a2e71b6.png)
然后写个小爬虫,因为要有账号信息,所以要带上cookie:
- import requests
- header={
- 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
- "Cookie":'',
- url='https://www.baidu.com/sugrec?prod=pc_his&from=pc_web&json=1'
- response=requests.get(url,headers=header)
- print(response.text)
- UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 518: ordinal not in range(256)
但是你可能会遇到上面这种情况,报编码错误
我去网上查了一下,以为是编码的问题,然后给cookie加了“utf-8”编码方式,如下:
- import requests
- header={
- 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
- "Cookie":''.encode("utf-8"),
- url='https://www.baidu.com/sugrec?prod=pc_his&from=pc_web&json=1'
- response=requests.get(url,headers=header)
- print(response.text)
- {"err_no":0,"errmsg":"","queryid":"0x21a1c8a90872b8"}
又报错了。。。。。
就在我认为百度是不是有什么高端的反爬措施时,突然发现cookie的“BDUSS”参数有点问题,如下:
- BDUSS=JkRjIyUFR2T01Yd3QxcTZ…AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4Gzl~-Bs5fZX
中间多了省略号,这是因为字符太长了,被自动省略了,于是我赶紧把该参数补全,重新尝试了一下:
- import requests
- header={
- 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
- "Cookie":'',
- }
- url='https://www.baidu.com/sugrec?prod=pc_his&from=pc_web&json=1'
- response=requests.get(url,headers=header)
- print(response.text)
大功告成
最后加个循环程序:
- import requests
- import json
- import datetime,time
- header={
- 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0',
- "Cookie":'',
- }
- url='https://www.baidu.com/sugrec?prod=pc_his&from=pc_web&json=1'
- result=[]
- while True:
- dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') #时间戳
- response=requests.get(url,headers=header)
- datas=json.loads(response.text)['g']
- for data in datas:
- if data['q'] not in result:
- print(data['q']+' '+dt)
- result.append(data['q'])
- time.sleep(60)
![用同事电脑登了一次百度账号,搜索框就被他用python监控了](https://s4.51cto.com/oss/202101/16/789cc5cd37ffc1faed9d26069743ecab.png)
以自己的亲身经历告诉大家,千万不要在被人电脑上乱登账号,小则丢人、大则丢金,切记切记!
相关文章
- 从基础掌握Python的列表和元组
- 如何编写一个自己的图片API
- Python字符串和正则表达式的深入学习
- Python字典和集合初窥
- Python函数的学习总结
- C语言 逻辑量、逻辑运算符和逻辑表达式、if语句和switch语句
- 钉钉微应用开发后端 : (实验室绩效管理系统)
- Java servlet中web xml文件内容执行原理
- 为什么我不建议你通过 Python 去找工作?
- Javaweb-servlet中的Filter过滤器使用方法。
- Axios使用方法-实现前后端交互
- Python粉丝数实时播报程序
- 不背锅运维:分享OpenStack API使用套路
- apisix control api的使用
- Python下载文件进度条Demo
- 【代码】利用Python每天自动发新闻到邮箱
- Python 接口测试之处理转义字符的参数和编码问题
- python和netlogo软件模拟病毒传播仿真模型(一)
- aes加密算法python版本
- Win10 环境下安装Tesseract-OCR与Python集成识别