本人担任职友集的java工程师五年,其中抓取数据占主要的一部分,抓取的信息只要有两部分,职位和简历,其中职位的抓取量为日均插入量为30万,更新量 为60万,抓取全国300多个人才网站。职友集(现在改名为跳哪网)现在是全国职位量最高的垂直搜索引擎。月均广告收入约20万左右。当然这是经过我们团 队的努力。
   
我们在职位抓取方面是下了很大的一番功夫,使我们的职位量无法被人超越,首先现在很多人才网站为人防止其它网站抓取它的信息,都在封IP,尤其是中华英才
网,我们为了向我们的用户提供大而全的职位信息,时刻作出我们的努力。我们为了解决封IP的问题,我取采取了多代理的方式。充分而均衡的运用多IP,有效
的解决了封IP的问题。除了封IP的问题外,有一些网站为了防止其它人抓取他的企业联系信息,把企业的联系信息如电话号码,邮箱等放在图片中,我们为了我
们的用户,可谓是呕心沥血地解决问题。我们经过我们的长期研究,可以有效地读取图片中的文字信息。为我们的访客提供良好的信息体验。
    我们的抓取在提取网站信息方面是用正则表达式,而不是用其它的,这样是有我们的理由的,因为如果有带有浏览器性质的插件,这样会为整个抓取带来很多风险。

首先,在解析脚本方面会存在不稳定因素,可能会令整个程序运行得很慢,很耗CPU资源。可能会因为某个脚本的运行不当而令整台服务器down机。而且用浏
览器式插件。速度很慢,不能满足日常的抓取需求。所以我们放弃了用浏览器式插件。而改用javahttpURLConnection来抓取网页的html
源代码,用正则表达式提取网页的特定内容。然而正则表达式用起来虽然很方更,但也存在一个比较重要的问题,如果一不小心有一条正则表达式写错了,会相当耗
CPU资源,CPU的占用率会突然提升起来。而且会一直居高不下。我们为了能解决之个问题,我们修改了java.util.regex.Pattern
类,一但正则表达式长期占用CPU资源高居不下,程序自动终止正则的匹配,并记录错误。方便查看那一条正则写错了。在抓取时有可能会遇到需要登录才能获取
页面的情况。而且有时登录时需要输入验证码等情况,我在抓取方面,对ocr都有很深入的研究,大部分不太复习的验证码都可以通过编程方法破解。实现自动登
录时通过提交通过提交通数,然后获得cookie,然后再通过这个cookie获得那些登录后才能看到的页面。

Java数据抓取经验【转载】的更多相关文章

  1. Java实现多种方式的http数据抓取

    前言: 时下互联网第一波的浪潮已消逝,随着而来的基于万千数据的物联网时代,因而数据成为企业的重要战略资源之一.基于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试! ...

  2. iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据

    网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...

  3. iOS开发——网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据

    网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...

  4. 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上

    Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...

  5. [nodejs,expressjs,angularjs2] LOL英雄列表数据抓取及查询显示应用

    新手练习,尝试使用angularjs2 [angularjs2 数据绑定,监听数据变化自动修改相应dom值,非常方便好用,但与传统js(jquery)的使用方法会很不同,Dom操作也不太习惯] 应用效 ...

  6. 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单

    基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...

  7. 如何使用JAVA语言抓取某个网页中的邮箱地址

    现实生活中咱们常常在浏览网页时看到自己需要的信息,但由于信息过于庞大而又不能逐个保存下来. 接下来,咱们就以获取邮箱地址为例,使用java语言抓取网页中的邮箱地址 实现思路如下: 1.使用Java.n ...

  8. [原创.数据可视化系列之十二]使用 nodejs通过async await建立同步数据抓取

    做数据分析和可视化工作,最重要的一点就是数据抓取工作,之前使用Java和python都做过简单的数据抓取,感觉用的很不顺手. 后来用nodejs发现非常不错,通过js就可以进行数据抓取工作,类似jqu ...

  9. 爬虫---selenium动态网页数据抓取

    动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...

随机推荐

  1. 解决JDeveloper运行慢的设置/BPM/SOA Server JVM参数设定

    最近在使用 Jdeveloper 10.1.3.3 版本时发现速度奇慢无比,后经Google,发现如下解决方案:在 jdev.conf 文件的末尾加上如下两行,速度即可得到显着的提高, jdev.co ...

  2. Zookeeper命令

    常用命令 ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 Zoo ...

  3. UVa 12096 (STL) The SetStack Computer

    题意: 有一个集合栈计算机,栈中的元素全部是集合,还有一些相关的操作.输出每次操作后栈顶集合元素的个数. 分析: 这个题感觉有点抽象,集合还能套集合,倒是和题中配的套娃那个图很贴切. 把集合映射成ID ...

  4. c#字符串及数组操作

    字符串操作(取当前时间)string time=convert.tostring(DateTime.Today).split( new char []{' '});    textbox1.text= ...

  5. urllib

    urllib Python 标准库 urllib2 的使用细节 python 2.x 3.x from urllib import request with request.urlopen('http ...

  6. 陈正冲老师讲c语言之const关键字

    1.const 关键字也许该被替换为 readolny const是constant的缩写,是恒定不变的意思,也翻译为常量.常数等.很不幸,正是因为这一点,很多人都认为被const修饰的值是常量.这是 ...

  7. SSL 通信原理及Tomcat SSL 配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  8. POJ3279 Fliptile 枚举+简单搜索

    题意:一个矩阵,每个点1或0,然后每次翻一个点,它周围上下左右(包括自己)1->0,0->1,问最少翻几次可以矩阵全是0,忽略题目说的字典序 分析:枚举第一行所有的情况,然后下面几行也随之 ...

  9. 树莓PI交叉编译BOOST库(asio网络例子)

    环境搭建参考上一篇文章[http://www.cnblogs.com/yuliyang/p/4023758.html] 客户端(use boost.asio on raspberry pi )clie ...

  10. 交易策略研究 R库

    本文在Creative Commons许可证下发布 交易策略研究 R库,直接安装:xts, TTR,quantmod,RTAQ,PerformanceAnalytics,FactorAnalytics ...