这事我得从头唠,前两天帮朋友查企业信息,一打开国家企业信用那个官网查完才发现数据是三个月前的。你说这多尴尬?朋友还指着拿这资料去签合同!我赶紧去点那个更新按钮,结果网站卡得跟春运抢票似的,刷新了三次才刷出来,还提示要第二天才能查。
第二天我专门定了闹钟守着电脑,九点整咔咔一通点。更新按钮倒是有,但点完弹个提示框要输验证码,输完又跳转,跳转完还得等页面加载。好不容易刷完一家公司信息,一看表,十分钟没了。这要是查个几十家公司,我还干不干别的了?
我先翻遍官网页面犄角旮旯,连浏览器开发者工具都按出来了。发现每次点更新按钮时,浏览器都会往服务器发个特定的请求。这请求里带着一堆参数:
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
其他参数都好模拟,唯独验证码是个活祖宗。试了几个开源识别库,不是把B看成8,就是把5看成S。我只能土法炼钢:自己在脚本里加了个暂停功能,让浏览器弹出验证码图片,我手动敲进去!虽然还是要人盯着,但总比每次重新加载页面强百倍。
接着写了个定时任务脚本:
刚跑起来就报错,提示重复提交。查半天才发现官网有限制:同家公司10分钟内只能触发一次更新。只能加个计数器,每查完一家歇十分钟。结果太老实了真等十分钟,第二天发现又有验证码超时错误,合着验证码就三分钟有效!又改成先囤一批待更新企业,算好时间间隔轮着刷。
折腾到凌晨三点终于跑通了,挂着脚本睡了。早上一睁眼扑到电脑前,好家伙!查了87家企业更新结果全刷出来了。正准备拍大腿叫突然看到个红色警告——我被网站暂时限制访问了!得,自动刷新频率调太高,让人家风控系统当爬虫给毙了。
现在学乖了,脚本加了个随机延时,上午刷二十家就收手,下午再分批弄,跟打游击战似的。你要问我值不值?看着文件夹里自动归档的最新企业数据,我只能说:这夜没白熬!