- 博客(49)
- 资源 (7)
- 收藏
- 关注
原创 微博模拟登陆之验证码的解决方法
近两周有很多在网络爬虫、nlp群320349384中有很多群友讨论关于微博类爬虫时出现验证码时的解决方法,解决思路很明显,一是人工打码,二是OCR智能识别来解决,前者较简单,后者较难只有大公司才能搞定80%,所以我们一般暂采取人工打码的方式。 但人工打码,并这里我强调的稍智些的人工打码,而去看浏览器去监测然后再在浏览器中去打码的过程,该实现过程太过啰嗦。本文介绍和在群320349384中共
2020-03-02 18:16:12
4981
1
原创 云计算之hadoop生态圈简介
早在2011年9月份就开始用了3个月时间学习hadoop、hbase、hive、nutch等东西,但当时没有明确的想法和充足的时间,后来就没有继续深入下去。有幸在今年春节之前的1个月的时间,做了hadoop、hbase相结合的简单开发,对hadoop相关有更深的理解,特在此补上年前未写的文章。 1、hadoop之hdfs: hadoop的底层存储文件系统协议,是hadoop的两大核心之一,即分
2015-05-17 17:03:32
771
原创 关于网络爬虫技术的概述
自2012年7月份开始接触爬虫相关,不经意间对爬虫有了不少心得和总结,看到周围不少的同事和同学也在这块,发现很多共性的问题和很多的误区,今天特意总结出来,希望对后来者有所帮助。一、综述 爬虫主要分两种,全网漫爬型和垂直型。漫爬型即像谷歌、百度之类,垂直类爬虫即像微博爬虫、淘宝类电商爬虫。它们的主要区别在于,前者为漫爬不精准爬虫,多用于舆情、概要性信息的应用,后者为精准爬虫,即对
2015-05-17 17:01:43
5002
原创 nutch2.2.1的搭建与导入myeclipse8.5的二次开发
nutch2.x相对于nutch1.x最大的差别即增加了Gora模块,使存储多样简洁化。因为以前构建过nutch1.2、nutch1.6,因为这此构建会相对容易些,但出忽意料的也废了1天的时间,很是有点小郁闷,现将各关键点总结如下。 1、将nutch2.2.1从官网中下载下来,得到的是源码包,需要自己去ant或是maven。 2、进行ant之前,先确定自己要存储的数据库,是sql
2015-05-17 17:01:15
949
原创 新浪微博爬虫模拟登陆-最新版-2014-01-14
近来由于毕设需要,重新修改了新浪微博爬虫废了不少劲,希望下边的总结能够帮助后来的同学们。 现行版的模拟登陆与以前相比,最大的改动在于cookie获取时候的模拟url的请求过程,其难点之一的密码加密并没有任何改动,因为此次的改动主要是重新理顺它的cookie获取过程中的几个url请求的节点。 一、url请求流 1、“http://www.weibo.com”
2015-05-17 17:01:05
1019
原创 SkyLightAnalyzer(天亮分词器)替换lucene4.5分词器
为了毕设完成为重,就将分词器的未登录词(新词)识别给延后了,而是在现在分词器满足实际需要的情况下,写了下相应的分词接口用于替换掉lucene的analyzer,使lucene更能适合于中文的毕设应用。 1、参考lucene的StandAnalyzer去实现lucene的分析器接口Analyzer即可。 整个过程是典型的模板方法的实现,只要实现其抽像的protect
2015-05-17 16:59:49
891
原创 SkyLightAnalyzer(天亮分词器)小结
一直以来想写个自己的中文分词器,从2013年5月份写了基于二分插入、双数组算法实现的中文粗分词,之后由于各种原因未能进一步完善达到一个标准分词器的水准,自上周从公司离职后,历经一周的努力,并在ansj分词的辅助参考下,终于取得了不错的突破,希望有对这块感兴趣的同学可以在此互相交流。 现在分词达到的基本要求是: 1、基于双数组结构实现的机械分词2、词条删除与增加、以及对已有
2015-05-17 16:59:07
760
原创 关于java web开发中乱码问题的解决思路
最近有几个朋友又问了些关于乱码的问题,这是经典的开发问题,令很多开发者都很苦恼,其实只要稍微花些时间搞清的话,这个问题是非常好解决的。下面就java web开发的乱码情况,解决思路如下:一、总体原则: 1、保证前台、后台、web容器如tomcat、jboss等的编码一致,一般设置为UTF-8,这样会省去很多地方繁杂的转码。 2、编码设置一般要显式去设置,而不要去默认这样会导致项
2015-05-17 16:57:41
455
1
原创 程序员笔试面试注意事项-1
近一年来,由于公司需要,也经常做Java程序面试官的工作,和很多中小型公司一样,只要技术面不过,就直接pass了。在此简单分享下我面的大概100人左右的求职者的笔试和面试的注意事项。一、笔试 1、不可迟到,早到20-30分钟为宜。 迟者无心,见者有意。晚到被很多人尤其是面试认为是不看重、不尊重的表现,早到则取其反。 2、第一次和公司人员接触,要争取良好的印
2015-05-17 16:57:39
717
原创 网络爬虫中编码的正确处理与乱码的解决策略
最近一个月一直在对nutch1.6版进行中等层次的二次开发,本来是想重新做一个自写的爬虫系统,鉴于前基做过微博爬虫系统,感觉再重写一个完整的爬虫费时、费力还没太大的含金量,故而直接基于nutch开发。 之所以说中是因为没有改动nutch的核心部分map/reduce,但改动了除此之外的绝大部分问题,最终形成了任务提交多样化、调度合理、数据流优化、乱码处理、源码与正文保存等较为合理的网络爬
2015-05-17 16:56:13
2443
1
原创 百度面试题-蚂蚁过木板-完整解答
最近在准备校招的事情,顺便做一下各名企的笔试题,题还是挺有意思的,下面是百度的一道典型笔试题解答。1题目:有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反
2015-05-17 16:54:43
1259
原创 myeclipse导入nutch1.6的配置和若干问题
有两年没整过nutch了,赶上公司需要,又重新理了下思路。我以前写过一篇关于“myeclipse导入nutch1.2源码”的博文,网址 为http://hi.baidu.com/erliang20088/item/a1099948c0d92f146dc2f00b,再将“cygwin安装后的bin目录放到window系统的PATH变量中。 导入的过程那篇合适,这次导入nutch1.6也是参考这篇
2015-05-17 16:54:39
648
原创 hadoop、hbase、hive版本匹配问题
由于近来又开始学习hadoop方面知识,又重温和进一步整合了下hadoop、hbase、hive,对于版本的匹配做个如下小结。1、hadoop由于快速发展,版本更新很快,已经由hadoop0.x发展到hadoop2.x,目前hadoop2.x还处于beta测试,但是hadoop0.x--hadoop1.2都是稳定版的。2、由hadoop的相关项目,hbase、hive、pig、zookee
2015-05-17 16:53:35
2790
原创 JNI调用时so链接库文件的路径设置
最近在做JNI程序时,用到了相当于windows环境下的dll--动态链接库的so库,即linux环境下,程序执行时所需要函数链接库。一般来说的so库路径寻找包括编译时和运行时,因为前边提到的是JNI调用,则此处说的路径寻找为运行时候的寻找过程。寻找的路径顺序一般为: (1)/lib,或是/usr/lib下寻找。 (2)在LD_LIBRARY_PATH环境变量中所设定的
2015-05-17 16:52:20
6393
原创 中文分词之trie树机械分词简介
由于要做微博短文本情感分析方向的毕设,而中文分词是NLP方面的基础,也是核心,从一定程度上决定了NLP的水平。现在就近期所学的中文分词做个基本介绍。 当下的中文分词,主要有3种方式,一是基于字符串匹配的机械分词,二是基于句意理解的理解性分词,三是基于统计模型的统计分词。但纵观各分词器的实际做法,是要将其中的两种或三种相结合才能达到相对理想的结果。只运用其中一种的分词的话,所成的分词
2015-05-17 16:49:48
2489
原创 向量空间模型(vsm) 简介
一直在做自然语言处理相关的应用开发工作,一直没能抽时间做相关的系统组件或是算法分析工作,最近有时间,将自然语言处量相关的分词、 搜索、各种计算统计分析模型都看了下,收获不少,因时间关系,就以自己的见解来解释下好像挺复杂的vsm吧,其实超简单。 1、 vsm,即向量空间模型(vector space model)的意思,本身是一种数学模型,来解决NLP(自然语言处理的简称,Natu
2015-05-17 16:49:06
11219
原创 Java getBytes方法详解(字符集问题)
今天工作中又一次遇到了java字符集问题,这次是由getBytes方法导致的。 以前的时候,曾经很多次的解决过java字符集以及乱码的问题,以为对这块很了解了,至到今天的又一次深入的学习,才发现以前的认识当中存在的问题,下次就getBytes方法在应用级别进行比较实际的解释。 1、Unicode是一种编码规范,是为解决全球字符通用编码而设计的,而rUTF-8,UTF-16等是这
2015-05-17 16:47:53
4453
1
原创 vmware虚拟机 NAT虚拟网络模式 linux静态IP配置
今天工作中,遇到要在一台托管的机器上安装vmware虚拟机,并在其上安装linux64,使系统能正常上网,并能与主机进行双向通信。 vmware典型的3种虚拟网络模式, 桥接(Bridged),直接联接到主机所在的外部网络中,即主机当中的名叫“VMnet0”的虚拟网卡。 NAT,Net Ad
2015-05-17 16:47:12
1193
原创 spring3.x管理mongoDB最新版
最近由于项目需要,专门了解了下mongoDB以及java操作mongoDB的细节,现就其中就spring管理mongoDB时遇到的一个小障碍做一个比较详细的解释。 刚开始做二者的集成时,网上基本上都是spring-data-mongo1.0.0Mx和spring-data-common1.1.0配合,该链接就可以完全解决这个问题。http://blog.youkuaiyun.com/
2015-05-17 16:45:26
1057
原创 window版redis使用中无法保存数据到磁盘
近来由于项目需要,将redis集成到项目中,使项目中的数据缓存部分交于redis管理。其中有一个典型的问题,数据无法保存到redis指定的磁盘目录中。1、环境: redis2.0.2 win7,server2003 jdk1.6.192、出现不能保存的不同情况 (1)通过redis-cli.exe,或是
2015-05-17 16:44:53
4703
原创 腾讯微博抓取--细节(2)
今天在进一步做腾讯微博内容抓取的时候,如何循环抓取多页的内容是个小难点。新浪的内容分页主要是三页式异步加载,而腾讯的分为两种方式:一种是常规的1,2,3,4,....下一页的方式,二种是,类似于新浪分页的三段式分页加载。在此主要说下腾讯微博的内容分页采集问题。 1、若是常规的1,2,3,4,....下一页的方式,此种较简单,只需要反复使用首页的抽取模式即可,无需重新抽取的请求URL和正
2015-05-17 16:41:40
818
原创 项目开发中,大数据量的增删改查的若干解决方法
近期,一直在做一个基于SSH2框架的ERP项目,也算得上是自己的处女作,趁晚上有时间,分享一下。 自从有了SSH等这样的框架之后,越来越多的java开发人员喜欢使用框架来做开发,其中hibernate便是最经常被用到的框架之一,有了它,可以让开发人员省去很多气力写琐屑的代码段,用JDBC去做数库中的CRUD操作,当项目很小,数据量不大时候,还可以接受,当数据量了上10万级别,很多时候
2015-05-17 16:40:57
4760
1
原创 腾讯微博抓取--细节(1)
在上一篇中讲了关于腾讯微博登陆之后,下一步就是具体微博内容的抓取了,经过两天的开发,基本上帐户信息和微言的获取已经完成,中间遇到了点小细节,小结分享一下吧~ (1)关于微博人物头像的获取 新浪头像的获取是比较人物化、程序化的, 其获取公式如下: this.photoUrl = "http://tp3.sinaimg.cn/" +
2015-05-17 16:38:53
982
原创 腾讯微博采集器 模拟登陆 2012-11-26版
由于工作需要,花了近2天时间成功实现了腾讯微博的模拟登陆,现总结如下供学习和应用者相互交流。(1)腾讯微博和新浪微博的登陆加密思路很相似,都是要经过两道手续,一是要先获取加密参数,二是要加密计算。 新浪weibo是要获取serverTime和nonce,而腾讯weibo则是先获取verifyCode和pt.uin(是由先传的qq或是微博帐号帐号获取)才可以。(2)获取v
2015-05-17 16:34:46
658
原创 SimpleDateFormat 线程非安全
这段时间一直在做微博爬虫这块的开发,做这块必用就是多线程。 其中有一功能模块就是抽取微言的时间模块,如date="2012/10/30 11:30:30",每次用SimeDateFormat转换成Date时总有近3/5000的转换失败率,比如出现0001/09/01 00:00:03,在再三审查多线程控制的时候,没发现同步那里出现问题。 最后查到了转换对象SimpleD
2015-05-17 16:34:37
467
原创 spring3.0 与webservice结合
如果只说webservice的搭建的话,用myeclipse+xfire就可以轻松搞定,网上的教程多如牛毛。但是前两天由于项目需要,要用到spring+webservice结合,出现了不少问题花了小一天时间才搞定,下面总结一下:1、只配置webservice的话,用xfire配置就可以搞定。2、要用到spring的话,就不一样了,因为要用spring的自动注入或是annotation,一句
2015-05-17 16:33:42
562
原创 tomcat中文乱码的解决方法
早上本来想写这个问题的解决方法,结果由于要上神胜的党课,结果推到了下午才抽出时间,言归正传了~ 现在学习jsp以及应用jsp的人越来越多,那用tomcat也必然的越来越多,不可避免的就出现了中文乱码。分为客户端乱码、服务器端乱码两种情况。 1、客户端乱码。这种情况较为常见,也较为好解决,多因为网页的编码有问题,如采用ISO-8859-1就会出现中文乱码,因为该编
2015-05-17 16:29:30
786
原创 Hadoop之WordCount之己见
这两天有些空闲时间,看了些关于hadoop的相关资料,对hadoop有了更加深刻的认识,趁热打铁吧,让想学hadoop的同志们,从此程序开始揭开hadoop的神秘面纱。1、关于hadoop的一些介绍已经泛滥了,我就不缀述了,以其经典例子程序为例,了解一下最经典最简单的hadoop程序。2、一般的hadoop的编写,主要是编写Map和Reduce函数,也就是所谓的Map打散,Reduce汇总
2015-05-17 16:27:49
371
原创 c#多线程之生产者与消费者问题的解决
这两天由于学习的需要,学了一下C#的多线程,并写了个经典生产者与消费者的案例,但从中也发现了一个问题,总体上感觉C#比java在各个方面来说,总是有些不如,也许是长期使用java和刚刚接触C#吧,存在些偏见,言归正转,解决这个多线程问题,有以下几步骤:1、使用多线程遇到的问题:解决诸如购票、候车等问题时,肯定是并行工作的,当共同访问一块数据时,如果不加锁的机制的话,肯定会造成数据不一致。2
2015-05-17 16:26:37
3428
原创 nutch1.2常见问题解决
这里是将前边几篇当中的一些常见问题进行下总结,都是自己遇到并解决的,也许是不全1、缺少chmod命令异常 因为nutch在window下运行时需要linux某些命令,所以要装cgywin是必须的,再配上path中的bin环境变量就可以了。2、多个job failed (1)最常见的是由于抓取数据时比较耗内存,故需要稍微大些内存,可以在选择设置系统的jv
2015-05-17 16:25:01
654
原创 用IKAnalyzer替换nutch分词组件
都知道,nutch是基于lucene搜索的,而lucene是基于标准分词StandardAnalyzer的(当然还有其它自带的,效果都和StandardAnalyzer差不多),而它们的中文分词效果都不理想,也就导致索引不理想,也就导致搜索不理想,所以根在分词,只要分词好了,nutch就会有质的改变。本来是想用ICTCLAS了,但是遇到许多其它问题,最后选用IKAanalyzer作为替换分词组件,
2015-05-17 16:23:34
603
原创 hadoop secondarynamenode的作用
今天在宿舍看了些《hadoop实战》,看到了原版的很多hadoop内容,解释一下很多初学者对于secondarynamenode的认识,1、初学者会见名思义的认为secondarynamenode是namenode的备份其它的,或者认为它们是一样的。实质上,它是namenode的一个快照,会根据configuration中设置的值来决定多少时间周期性的去spap一下namenode,记录nam
2015-05-17 16:22:41
479
原创 tcp_wrapper应用初步
今天学习了一下tcp_wrapper和iptables简单应用,下面先介绍了一下tcp_wrapper。1、tcp_wrapper,主要应用就是限制ip地址或ip地址段对主机进行访问或指定某项服务的限制,简言之,就是设置访问者的权限。2、一般的tcp_wrapper服务是linux系统自带的,并不需要安装,其核心配置文件在/etc下的hosts.allow,hosts.deny3、ho
2015-05-17 16:20:32
466
原创 nutch1.2分布式搜索配置
在前些天关于nutch+hadoop的基础知识之上,今天专门学习了下nutch1.2分布式搜索的配置知识,在此做一下总结,望对大学有益。1、假设你已抓取数据成功,取名抓取下来数据文件夹名称是:crawl_data,至于如何抓取数据,前边两篇已有。2、在前边nutch+hadoop分布式抓取数据的配置的情况下,修改nutch安装文件中的conf/core-site.xml和nutch-sit
2015-05-17 16:20:21
625
原创 解决vitualBox上的linux系统联不上网
在虚拟机装的基于red hat的oracle enterprise linux系统上,在主体机器可以上网的情况下,只需注意三个地方:1、第一个:/etc/sysconfig/network-scriptes/ifcftg-eth0这个文件,这个文件中配置的是你的系统的ip、netmask、gateway、dns、以及mac, 如果是dhcp的分配方式的话,上网就得另说了,我这里讲
2015-05-17 16:19:33
921
原创 nutch1.2+hadoop0.20搭建分布式环境
在前边介绍了nutch1.2的单机布署环境之后,此篇介绍一下nutch1.2+hadoop0.20的集群环境的搭建。本来hadoop是属于nutch1.2下边的一个附属部分,后来好像是在nutch0.9剥离出去,成了独立的一支,但是它们天然的结合性是相当默契的。nutch1.2是包含hadoop0.20的,如果不是特殊要求的话,用自带的就可以了,而且这个版本的hadoop还是相当新的,本篇即是
2015-05-17 16:18:06
709
原创 nutch1.2+hadoop0.20搭建分布式环境
在前边介绍了nutch1.2的单机布署环境之后,此篇介绍一下nutch1.2+hadoop0.20的集群环境的搭建。本来hadoop是属于nutch1.2下边的一个附属部分,后来好像是在nutch0.9剥离出去,成了独立的一支,但是它们天然的结合性是相当默契的。nutch1.2是包含hadoop0.20的,如果不是特殊要求的话,用自带的就可以了,而且这个版本的hadoop还是相当新的,本篇即是
2015-05-17 16:17:24
534
原创 linux搭建nutch1.2单机环境
1、所用环境:oracle enterprise linux+nutch1.2+jdk1.6+tomcat6.02、这四个资源备齐之后,并且安装完毕,这些工作就不细说了,网上查一下很多的。3、根据自己的环境配置,nutch1.2下的conf下的core-site.xml和nutch-site.xml,具体如下: core-site.xml:
2015-05-17 16:16:53
511
原创 linux搭建nutch1.2单机环境
1、所用环境:oracle enterprise linux+nutch1.2+jdk1.6+tomcat6.02、这四个资源备齐之后,并且安装完毕,这些工作就不细说了,网上查一下很多的。3、根据自己的环境配置,nutch1.2下的conf下的core-site.xml和nutch-site.xml,具体如下: core-site.xml:
2015-05-17 16:16:44
606
原创 nutch1.2测试
上一篇介绍的是环境的搭建,这一篇继续上一篇的步骤,介绍一下对于环境搭建起来之后测试和使用问题。1、查看生成的文件,如果命令执行成功的话,在你指定的dir_name中,你会发现5个文件夹,分别是:crawldb、linkdb、segments、indexs、index,各自作用为:crawldb和linkdb:是为nutch抓取数据的爬虫使用的,包话创建和增加新数据segments:包括
2015-05-17 16:15:11
551
解决show create table中文乱码问题的hive-exec.jar
2017-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人