Springboot与Selenium合体变蜘蛛爬企查查

发表于:2018-1-11 10:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:冬天只爱早晨    来源:简书

  最近工作上需要一些企业的详细的数据,工商信息啦,基本信息啦,还有一些关系图(投资关系、人物图谱)之类的,然后我来负责从企查查上弄些数据。
  强调:下面只是快速实现数据抓取的思路,没有详细的代码,同时也拒绝伸手党。
  现实中,一些工商信息网站会被无数的爬虫“骚扰”,所以网站的反爬虫策略也是越来越高,就拿企查查来说,基本的信息是直接可访问的,但是像人物图谱和企业图谱这些内容还是需要登录的,
  特别是人物图谱,非VIP会员,一天也只能看两次
  
  企查查的登录也是做了很多限制
  比如图片验证码啊,数字验证码啊,还有验证码异常出现刷新按钮啊等等(之前在做的过程中发现的没有及时截图)
 
  但是有了selenium这些都不是问题~接下来按照如下思维导图做一个抓取的分析(代码想了许久还是不贴出来了)
  
企查查
  登录
  滑块验证
  首先出场的是滑块验证,这个可以使用Selenium中的Actions.clickAndHold()来破防,打开浏览器Element面板,边滑动滑块边观察Html
  
  这说明滑块不只是单纯的移动到右侧,还导致其他样式改变,这也说明你不能直接通过修改Html的方式改变滑块的位置来验证 ,Ps:有的网站只要滑块在最终的位置,就认为验证通过了。
  使用java和selenium模拟滑动滑块
WebElement dragger = driver.findElement(By.cssSelector("#nc_1_n1z"));
Actions action = new Actions(driver);
action.clickAndHold(dragger).build().perform();
for (int i = 0; i < target; i++) {
try {
action.moveByOffset(offset, 0).perform();
} catch (Exception e) {
e.printStackTrace();
}
}
  target 和 offset 的值自己去口算一下~
  图片型验证码
  不知为何,我每次用代码模拟滑块的时候页面都会弹出图片型验证码,而人工滑动却不要,这让我很费解。
  一般像图片型验证码和数字型验证码有的人可能会自己去研究算法来解决,什么机器学习啦,深度学习啦等等。这里不要这么高深的,统统用打码平台,用法和价格自行百度,可以这样理解:你通过Http的方式提交图片和要求,平台会返回给你相应的结果。如数字啦、文字的坐标啦、多个文字的坐标等等。
  仔细分析下面的截图所对应的的Element
 
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • yangheng0301
    2018-10-23 10:39:46

    大神您好,可以请教您一些问题吗?麻烦加下我qq 394286561

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号