事情是这样的,因为昨天上班忘了带笔记本电脑,所以临时用了同事王大国的笔记本电脑,不小心登录了百度地图开放平台的账号。没想到他今天给我发来了这个:我都不好意思找地方钻进去了,一番打听后,他终于如实相告。原来百度的账号会自动同步。比如登录网页版百度地图、百度API等账号后,浏览器会自动维护,你所有的百度账号都会自动登录。当你在登录了百度账号的手机或电脑上使用百度搜索框时,会自动弹出历史搜索记录,如下图:那么你可以使用python爬虫定时获取搜索记录首先抓包获取数据接口:然后写一个小爬虫,因为需要账户信息,需要带cookies:importrequestsheader={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:82.0)Gecko/20100101Firefox/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'codeccan'tencodecharacter'\u2026'inposition518:ordinalnotinrange(256)但是你可能会遇到上面的情况,报编码错误我去网上查了一下,以为是编码问题,然后在cookie中加入“utf-8”,编码方式如下:importrequestsheader={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:82.0)Gecko/20100101Firefox/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...AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4Gzl~-Bs5fZX还有更多中间的省略号,这是因为字符太长,被自动省略了,所以赶紧补完参数再试:importrequestsheader={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:82.0)Gecko/20100101Firefox/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)大功告成,最后添加一个循环程序:importrequestsimportjsonimportdatetime,timeheader={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:82.0)Gecko/20100101Firefox/82.0',"Cookie":'',}url='https://www.baidu.com/sugrec?prod=pc_his&from=pc_web&json=1'result=[]whileTrue:dt=datetime.datetime.now().strftime('%Y-%m-%d%H:%M:%S')#timestampresponse=requests.get(url,headers=header)datas=json.loads(response.text)['g']fordataindatas:ifdata['q']notinresult:print(data['q']+''+dt)result.append(data['q'])time.sleep(60)以自己的经验告诉大家,千万不要随便登录受害人电脑上的账号,小的丢脸,大的丢钱,切记切记!