当前位置: 首页 > news >正文

如何绕过谷歌反爬策略爬取搜索结果

背景

尝试开发一个爬虫,绕过谷歌反爬策略并获取谷歌搜索的结果。

技术栈

  • docker管理开发环境,操作系统为centos7
  • puppeteer-extra-plugin-stealth插件 + chromium浏览器模拟真实用户
  • xvfb模拟图形界面环境
    相关的实现代码很多,这里不再赘述,只讲解决问题的过程。

问题

开发完成后,发现了一个奇怪的问题。本地运行得很顺利,但同样的docker镜像,同样的代码,部署到数据中心docker环境后,却发现必被google反爬策略拦截(返回验证码界面)。当时分析可能有两个地方有问题:

  1. ip问题,ip已被google拉黑。
  2. 宿主机环境问题,虽然镜像一样,但实际上本地和服务端仍然有地方存在区别导致了反爬策略的触发。

一番分析后首先排除问题1,因为本身已经使用了民用ip代理池,但仍然稳定返回验证码,可见并不是ip的问题。

进一步仔细观察docker镜像,发现自己使用的docker镜像配置同步了宿主机的时区,而本地时区为Asia/Shanghai,数据中心的机器时区为UTC。Docker默认会用UTC作为时区,而正常用户的Windows,MacOS系统往往使用的是Asia/Shanghai这种IANA 时区(Area/Location 格式),并不会使用UTC时区。猜测谷歌可能以此作为依据,直接默认对所有时区为UTC的请求返回验证码。利用js修改浏览器能获取到时区后,成功解决问题。

其实谷歌完全可以采取更激进的反爬策略,就是判断用户时区是否与ip属地一致,但猜测可能误伤率过高,并没有开启。

http://www.wxhsa.cn/company.asp?id=3003

相关文章:

  • 求细胞数量
  • [SSL]
  • Rust 生命周期详解 - 实践
  • 笔记《机器人动力学理论及其应用》上交桂凯博士-中科深谷机器人大讲堂第10期
  • [豪の学习笔记] 软考中级备考 基础复习#9
  • Shiro概述 - 详解
  • 2025CCPC南昌邀请赛游记
  • 双因素认证暴力破解绕过技术解析(2023更新版)
  • 文本三剑客
  • 软件工程第二次作业-个人项目
  • Git 分支
  • 用 Go 打造一个服务器资源指标采集器:结合 Prometheus Exporter 实战
  • 2025年API安全建设方案最佳实践:七步五方法
  • 【数学】拉格朗日乘数法
  • 华为芯片之父,33年默默开拓,铸就“中国芯”,功成身退时却鲜有人知!
  • Redis为什么适合做分布式锁? - 浪矢
  • 百度昆仑芯高调出圈:对标寒武纪,估值或达千亿港元?
  • WPS 定制版
  • 2024年以来,数学领域已有多位在国外顶尖高校取得终身教职的学者回国
  • 685.冗余连接
  • form表单和表单控件
  • 阿里云OSS图片生成缩略图和获取视频的封面方法
  • VSCode 运行 Python
  • [mysql] 卸载
  • 树上问题
  • 突发!美国将复旦微等23家中国实体列入“实体清单”
  • [GenAI] Function Calling
  • form表单
  • 【Zotero7】使用Attanger和百度同步空间如何进行同步?
  • XSS 漏洞挖掘学习