【教程】银行信息如何爬取?是否违法?(爬虫实际应用)

优采云 发布时间: 2022-05-01 12:28

  【教程】银行信息如何爬取?是否违法?(爬虫实际应用)

  但是当你下拉一下右上角的“网点类型”,重新选择“全部”选项之后,会发现“下一页”按钮生效了。

  

  这应该是网页的一个bug,但我们知道了纠错方法,现在的问题是:

  如何在爬虫中应用

  所谓爬虫程序,只是对真实操作的模拟。

  就像你有个助理一样,只要把规则跟他说清楚,他就会自动工作。

  按照我们之前的教程,爬虫可以完成“点击网点类型”之后的所有操作,那我们只要想办法帮它跳过这一步,后面就没有什么问题了。

  

  看不懂这个图的读者,可以参考这篇教程《》

  具体操作方法有三种。

  第三种算是一种脑洞,大家一定要看一下,并且体会如何“活学活用”已有工具。

  2.方法一:手动辅助操作

  在我们开始爬虫之前,会设置“爬取间隔时间”。

  

  如果我们按照原定的2000毫秒(2秒)来设置的话,爬取窗口一弹出,基本就开始翻页爬取了,留给我们手动操作的时间太短。

  所以,我们可以把间隔时间设置长一些(比如8000毫秒),让我们有时间手动点击一下“网点类型”,排除一下网页的故障,再让爬虫继续爬取。

  

  相当于把重复任务给助理之前,先帮他完成第一步,然后他就能顺利工作了。

  方法二:数据预览功能

  除了正常爬取之外,我们其实还可以利用“数据预览”功能,直接查看爬取到的结果。

  

  比如,我可以在点击完“网点类型”,确定网页没有故障之后,直接点击重复单元旁边的“数据预览(data preview)”。

  过一会儿就能看到,网页开始翻页,就像模拟真实爬取过程一样。

  

  等它翻到最后一页之后,下方的窗口中会弹出一个数据表格,里面的内容就是我们要抓取的数据。

  把这部分数据复制下来,粘贴到我们想要存储的文件中,做一点格式的调整就可以了。

  

  “数据预览(data preview)”功能非常重要,能帮我们解决大量问题。

  比如,有些网页爬取的第一步,可能并非“点击一下”这么简单,而是需要填写用户名和密码等信息,我们预留的“间隔时间”可能不够。

  这时,就不必非得“正式爬取”,而是在编写好规则之后,直接点击对应元素的“数据预览”,然后把结果直接复制粘贴下来。

  可以把“数据预览”想象成一个调试过程。

  如果调试正确了,我们就直接把结果拿出来,而不必真的再重复运行一次爬虫。

  注意:

  如果爬虫中设置了“重复单元”,要点击它对应的“数据预览”,这样重复单元里的所有数据都可以显现出来。

  

  

  如果只点击重复单元下的单个元素的预览,那么最终的结果只会显示那一个元素。

  

  

  方法三:活学活用click

  以上两种,算是比较常规的操作。

  但我后来又想到了一个“旁门左道”,可以把第一步的“手动操作”也写进自动化爬虫中。

  方法其实不复杂。

  之前我们手动操作时,要做的就是点击一下“网点类型”,然后再重新点击一下“全部”这个选项。

  也就是说,如果我能让爬虫自动点击,就不用我手动操作了。

  虽然WebScraper并没有单独的“点击”选项,但我们之前的教程中,其实有一个selector里是可以实现点击的。

  

  只不过这次我不需要爬取任何element,我只需要爬虫帮我点击一个按钮而已。

  按照这个思路,我们就可以新建一个selector,选择任意爬取对象(因为我们不需要爬取,而是想借用点击功能)。

  然后在选择click selector时,选中我们想要点击的按钮,并且在click type里选择“只点一次(click once)”。

  

  这样我们就相当于模拟出了,手动操作里第一步(点击下拉菜单)。

  以此类推,我们也可以新建一个click selector,让它在下拉菜单中,点击“全部”这个选项。

  注意:在用select选择“全部”这个元素前,要保证网点类型的下拉菜单已经拉开,否则无法选中。

  

  有了前两步的点击之后,我们就可以按照正常流程,添加后面的爬取规则了。

  因为WebScraper是按照顺序来执行命令,所以它会先完成两次设置好的点击,然后再开始后面的爬取。

  

  

  3.有关法律法规

  关于爬虫,之前就有朋友问过我如下的问题:

  

  因为这次爬取的是银行的网页,所以又简单查了一下相应的法规。

  理论上只要是公开数据,通常不会被判为侵权。像百度,谷歌这些搜索引擎,其实就是就是这么爬取信息的。

  但是要注意,根据相关条例:

  

  所以,你要让电脑帮你自动复制粘贴,而不是让它一天访问几百万次,搞垮对方的服务器。

  这就好比,你可以叫一个跑腿的服务,帮你去餐馆取餐,但不能叫几千个小哥,同时挤进一家店,那别人还怎么做生意。

  但大家也不必有太大的担心。

  一来是因为大家浏览的网页信息,通常都是公开可查询的,不公开的东西,你也找不到。

  二来是为了防止恶意访问,网站通常会有反爬机制,没等你触犯法律,就已经触碰到了网站的底线了。

  对于担心是否违规的朋友,我的回答是:

  不是不想,而是不能。

  

  4.总结

  具体的干货,上面都已经分享完了,但在写这篇文章时,有了几点很深的感受。

  首先,工具是死的,但人是活的。

  只要愿意开动脑筋,办法总是比问题多。就像我给出的第三种click方法,其实人家估计也没那么设计,但不妨碍我们这么使用。

  这方面,我觉得真得学习下公园里健身的大爷。

  大爷们会根据自己的需求,重新定义各种健身器械,抛开是否科学安全不谈,这种创新开拓的精神,真值得我们学习。

  

  其次,“无知”不可怕,对“无知”的无知才可怕。

  当我知道自己“无知”时,起码有学习的机会和动力,但当我完全不知道自己的“无知”时,连基本的改善空间都没有。

  这也是我想要探索和学习新技能和新工具的原动力。

  学会了一个技能之后,除了感受到喜悦之外,也会出一身冷汗。心想要是不知道这些知识,未来的人生要多费多大力气啊!

  最后,成为1%的人不困难。

  我在文章中的“案例说明”当中,说了这么一句:

  

  但真正会做的人,我估计连1%都不到。

  也就是说,只要你开始行动,不管结果是否理想,都已经超过了99%的人了。

  至于这个结论是如何得到的,我会在后面的文章里详细叙述(因为这几天在手机上看书时,发现了一个有趣的数据)。

  最后的最后,读者才是作者最大的财富。

  在帮他解决完问题之后,他发来了一条信息。

  

  《》中刚说过,得为读者创造价值,才有可能获得认可,这里就给出了反馈。

  如果你在工作中遇到了什么问题,也欢迎你留言描述,说不定我这边就有工具,帮你解决困扰已久的问题。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线