代码里的“随机应变”

说在前头

有段时间没更新了,期间发生了很多事,这里就不一一赘述,有一个要说一下, 之前我放在github上的springbootquick代码结构我重新整理了一下,因为我觉得branch的方式去完善每个小功能不太直观,索性找个时间全都整理在了一起,方便大家观看

目录结构

项目地址为https://github.com/vector4wang/spring-boot-quick 里面有些是我工作中用到的,有些是我在平时玩玩积累的,如果对你有帮助,点个星,fork一下,我会感激不尽,如果有问题,请及时沟通我,我会在第一时间改正,我的原则是“交流、互助、提升”~
  今天就我之前写的一个小虫子说一下代码里的随机应变,以下观点均数个人看法,如有雷同纯属巧合,如果你对我的看法有意见欢迎拍砖,如果觉得我的理解有点意思,那有劳,点个赞分享一下,我定感激不尽,好的,言归正传!

起因

世充日踧月迫,力尽计穷,悬首面缚,翘足可待。建德远来助虐,粮运阻绝,此是天丧之时。请固武牢,屯军氾水,随机应变,则易为克殄 ---旧唐书·郭孝恪传(指随着情况的变化灵活机动地应付)

之前写的领英爬虫目标数据比较随意,即抓取一段时间之后,后面得到的数据都是老外的,这不是我想要的,于是上级给了一个办法, “通过百度搜索去抓”,即在百度搜索某一个姓氏或常用名,通过百度返回的列表再依次去领英里去抓,如图

列表.png

后来验证这是可行的,其实这里也是一个“随机应变”的情景,这条路走不通立马换条路,而且是可行的。
  问题到这看似没有问题,但是用过百度的都知道,当你点击某一结果的时候,百度这边需要做一个重定向处理,即重新指定url,例如你点击百度链接http://www.baidu.com/link?url=6pwgxIUI8VfssEgJKHAHjdHBD_55cW5E72arpGIV9lZoAxLsaqV3do9p9O01kuzb3s3FlJKImEFkFsvWkDWL8a,经过重定向后就变成了http://cn.linkedin.com/in/johnsonwangnz,这一点htmlunit做的很好,自动获取重定向的页面,但是在防爬虫这一块,领英做的很好,这一点列一下我知道的限制

  • ip限制 一个ip对领英产生大量非人类行为的请求,他会对这个ip登录的账号做一个人机验证,比12306还好玩,大家可以试试,手动偷笑~
  • 请求限制 当产生大量请求是,它会对请求直接拒绝~
  • 账号限制 同一个ip或者ip所在的网段注册多个领英账号的时候,账号会出现各种繁琐的验证,没验证的直接禁掉!!!

目前我知道的就这几条。
好,因为是代码,请求的速度非常快,一秒通过百度指向领英跳转达到几十个,几分钟后代码就报错了,如下


999.png

  这啥啊,999感冒灵冲剂啊!!!查了下code码,原来是“访问被拒绝”,我得出的结果是领英那边检查出了大量的个人页面的请求,速度很快非人类所能达到,于是就禁止数据返回。
  我心想这下完蛋了,这条路难道也走不通!!!急的我抓耳挠腮~,然后我起身转了一圈,喝了点水,突然灵光一闪,“我想要的就是个人中心的链接啊,我可以先拿到这些链接存起来作为种子url,然后再将以前的爬虫改造一下,通过这些url去抓啊!”
于是,我将这些错误catch住,通过简单的正则来判断是否为拥有个人中心的链接地址,如下:

final Pattern r = Pattern.compile("in/[\\u4e00-\\u9fa5-0-9-a-z-A-z%]*");



Matcher m = r.matcher(e.getMessage());
String seed = "";
if (m.find()) {
    seed = m.group();
    seed = seed.substring(3, seed.length());
}
System.out.println(seed);

结果为

seed.png

没错,白色就是种子url,最后在直接访问http://www.linkedin.com/in/jingshi-wang-056b6245/ 就可以获取这个人一些职业信息啦~~~
职业档案.png

最终的是酱紫


结构.png

为什么领英爬虫还要回写种子DB,因为要将抓过的url打个标记抓过了,整体就这么简单。

现在种子抓了100多万了,领英这块抓了8万多,现在暂停了,因为帐号这块的问题还没有解决~~~,啊哈哈哈哈

后记

代码我放在了github上,点我,其实这里并不是说代码的这一块的,而是如何对代码反馈出来的结果做出灵活的应对以致快速总结出解决方案,这不就是对代码的“随机应变”吗~~

欢迎大家浏览我的个人博客http://vector4wang.tk

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • 戎装翠绿一身新, 昂首山崖目远巡。 势似刀枪杆杆立, 铮铮铁骨铸军魂。
    肖建东阅读 367评论 10 8
  • 关于不同的Servlet的配置所有的Servlet程序都必须在web.xml文件中进行配置,如果一个web.xml...
    年少懵懂丶流年梦阅读 292评论 1 3
  • (一) 海鸥只只飞过海面,浪花朵朵拍击着...
    Yn有恩阅读 226评论 0 1
  • 冬日的阳光逼退着刺骨的寒风,本以为它可以温暖这个冬天,却发现只是瞬间。 办公室的气氛...
    合脚的鞋子阅读 210评论 0 0