用WebCollector 2.x爬取新浪微博(无需手动获取cookie)

用WebCollector 2.x 配合另一个项目WeiboHelper,就可以直接爬取新浪微博的数据(无需手动获取cookie)

1.导入WebCollector 2.x和WeiboHelper的所有jar包

   两个项目的地址:http://git.oschina.net/webcollector/WebCollector

                             http://git.oschina.net/webcollector/WeiboHelper


2.示例代码:

[java]  view plain copy
  1. package cn.edu.hfut.dmic.webcollector.weiboapi;  
  2.   
  3. import cn.edu.hfut.dmic.webcollector.crawler.DeepCrawler;  
  4. import cn.edu.hfut.dmic.webcollector.model.Links;  
  5. import cn.edu.hfut.dmic.webcollector.model.Page;  
  6. import cn.edu.hfut.dmic.webcollector.net.HttpRequesterImpl;  
  7. import org.jsoup.nodes.Element;  
  8. import org.jsoup.select.Elements;  
  9.   
  10. /** 
  11.  * 
  12.  * @author hu 
  13.  */  
  14. public class WeiboCrawler extends DeepCrawler{  
  15.   
  16.     public WeiboCrawler(String crawlPath) throws Exception {  
  17.         super(crawlPath);  
  18.         /*获取新浪微博的cookie,账号密码以明文形式传输,请使用小号*/  
  19.         String cookie=WeiboCN.getSinaCookie("微博用户名""微博密码");  
  20.         HttpRequesterImpl myRequester=(HttpRequesterImpl) this.getHttpRequester();  
  21.         myRequester.setCookie(cookie);  
  22.     }  
  23.   
  24.     @Override  
  25.     public Links visitAndGetNextLinks(Page page) {  
  26.         /*抽取微博*/  
  27.         Elements weibos=page.getDoc().select("div.c");  
  28.         for(Element weibo:weibos){  
  29.             System.out.println(weibo.text());  
  30.         }  
  31.         /*如果要爬取评论,这里可以抽取评论页面的URL,返回*/  
  32.         return null;  
  33.     }  
  34.       
  35.     public static void main(String[] args) throws Exception{  
  36.         WeiboCrawler crawler=new WeiboCrawler("/home/hu/data/weibo");  
  37.         crawler.setThreads(3);  
  38.         /*对某人微博前5页进行爬取*/  
  39.         for(int i=0;i<5;i++){  
  40.             crawler.addSeed("http://weibo.cn/zhouhongyi?vt=4&page="+i);  
  41.         }  
  42.         crawler.start(1);  
  43.     }  
  44.       
  45. }  

运行结果:

[plain]  view plain copy
  1. 2015年来了,恭祝微博朋友和360用户新年万事如意!顺便向诸位汇报一下2014年360取得的科技进步:截止至2014年12月31日,360在过去的一年里专利申请总数达到1999件,其中国内发明专利申请:1570件;外观和实用新型专利:212件;海外专利申请:217件,累积申请专利总数已超四千件。 赞[1422] 转发[221] 评论[446] 收藏 01月01日 00:09 来自一加手机 不将就  
  2. 转发了 徐付群 的微博:【山东省民政部门承诺:负伤致残原国民党抗战老兵可与八路军享同等待遇】 明确对生活在大陆农村的和城镇无工作单位且生活困难的原国民党抗战老兵,给予生活困难救助,救助标准可参照抗日时期入伍的在乡复员军人执行,所需资金通过各地自筹、社会捐赠等渠道解决。 http://t.cn/RZyVNr3  原图 赞[373] 原文转发[2246] 原文评论[399] 转发理由:山东民政部做的不错,赞!@孙春龙 #寻找你身边的抗战老兵#  赞[582] 转发[274] 评论[303] 收藏 2014-12-31 11:13:02 来自一加手机 不将就  
  3. 转发了 360杀毒 的微博:2014年最后一天,小编的粉丝还不足10万。愁啊。。咋办?有了,小编刚搞到5台360儿童手表,介个当抽奖最好了。看这区区10万粉丝,中奖的概率还是很大滴。这样,只要①关注我的微博,②转发这条微博,③@ 一个好友,就有机会中奖!转起来吧,阿弥陀佛,转发的发大财!不转的发小财! [组图共2张]  原图 赞[94] 原文转发[2531] 原文评论[1076] 转发理由:少不了我这个拉低中奖率专业户,并祝大家新年发财 @360安全卫士  赞[313] 转发[464] 评论[656] 收藏 2014-12-31 14:51:13 来自360安全浏览器  
  4. 转发了 敖歌 的微博:百度杀毒删不掉。@周鸿祎 @360安全卫士 @360客服 你们仨给我听好了,昨天找了你们的167号工程师远程帮我删百度杀毒软件,弄了半天说弄好了,今天回家开机,那狗东西又死而复活。你不给我弄好,就不要打“最安全”这个口号。百度杀毒已经在电脑里困扰我很长时间了,删卸N次没用。另:@百度杀毒 你去死吧 [组图共4张]  原图 赞[102] 原文转发[542] 原文评论[173] 转发理由:博主今年4月24日删除不掉百度杀毒,于是向360寻求援助,@360安全卫士 最终解决用户问题了吗?呵呵,百度狼性真的厉害//@关城小亮:反正我卸载百度杀毒,还是动用了360软件管家,要不然去不了根儿[黑线]  赞[530] 转发[428] 评论[966] 收藏 2014-12-30 19:28:37 来自一加手机 不将就  


WebCollector爬虫官网:https://github.com/CrawlScript/WebCollector

技术讨论群:250108697


你可能感兴趣的:(用WebCollector 2.x爬取新浪微博(无需手动获取cookie))