羽中飞人 2021-05-28 19:50 采纳率: 51.1%
浏览 250
已采纳

python爬取网站被识别如何解决

爬取一个医药电商网站,爬取几页后,就不能获取到数据,后面发现只要把参数里的token手动更新一下,就又可以继续爬取,但过段时间又不能获取了,重复往返,很是烦人

代码缩减如下,异步获取第100类,供应商编号为2447,页码为1的商品数据

url = 'https://dian.ysbang.cn/wholesale-drug/sales/getWholesaleList/v4270'
ysb_cookies = {"__guid": "140493094.3233647003393036000.1603696496870.0378", "Token": "a8e89ec3b1174c72ada65a5ca1b63470"}
headers =  { "User-Agent": "Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/86.0.4240.198Safari/537.36"}
param = {'classify_id': 100, 'pagesize': '60', 'page': 1, 'provider_id': 2447, 'token': 'a8e89ec3b1174c72ada65a5ca1b63470'}
res = requests.post(url, headers=headers, cookies=ysb_cookies, data=json.dumps(param), timeout=10)
res.raise_for_status()
res.encoding = res.apparent_encoding
root_data = res.json()['data']
raw_datas = root_data['wholesales']


关于自动获取token,本人通过requests自动登录来获取cookies试过了,提示要手机短信验证码

所以如何能够自动获取token,或者能够得到找到计算token的逻辑,或者绕过token来获取数据呢

  • 写回答

3条回答 默认 最新

  • 家铭didphp 2021-05-29 09:10
    关注

    结合 selenium 库来操作。selenium 取到的 cookie 保存成文件,然后你这边 requests 请求的时候,去这个文件里读取最新的  token 值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料