首页 > 代码库 > 用WebCollector爬取新浪微博数据

用WebCollector爬取新浪微博数据

用WebCollector可以轻松爬取新浪微博的数据.

首先需要一个能查看cookie的浏览器插件,推荐使用 firefox浏览器+firebug(插件).

具体步骤:

1.用浏览器打开 http://weibo.cn/pub/   这是新浪微博面对手机用户的一个入口.建议不要使用自己的账号来做爬虫.之所以选择weibo.cn来爬去,是因为这个手机版的限制较少,但是weibo.cn的账号密码都是以明文传输,所以为了防止盗号,建议新申请账号进行爬取.


2.登陆进去后,进入个人微博界面(不是http://weibo.cn/pub/),使用firebug查看网页的cookie,找到cookie中的gsid_CTandWM的属性

记录gsid_CTandWM的值,以后爬虫登陆新浪,全靠这个值.


3.代码:

代码是基于WebCollector的:WebCollector官网

假设我们要爬取周鸿祎的微博信息.周鸿祎的微博主页:http://weibo.cn/u/1708942053(不登陆只能看第一页)

我们爬取前10页.

public static void main(String[] args) throws IOException{
        CollectionGenerator generator=new CollectionGenerator();
        
        for(int i=1;i<=10;i++){
            generator.addUrl("http://weibo.cn/u/1708942053?page="+i);
        }
        
        Fetcher fetcher=new Fetcher();
        fetcher.setConconfig(new ConnectionConfig() {
            @Override
            public void config(HttpURLConnection hurlc) {
                hurlc.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0");
                hurlc.addRequestProperty("Cookie", "gsid_CTandWM=上一步中获取的gsid_CTandWM的值;");
            }
        });
        
        fetcher.setThreads(2);
        
        fetcher.setHandler(new Handler(){

            @Override
            public void handleMessage(Message msg) {
                Page page=(Page)msg.obj;
                page=ParseUtils.parseDocument(page);
                Elements divs=page.doc.select("div.c");
                for(Element div:divs){                 
                    System.out.println(div.text());
                }
            }
            
        });
        fetcher.fetchAll(generator);
}


结果(部分):

 2014-09-01 17:57:04 INFO default  - fetch null http://weibo.cn/u/1708942053?page=1 
 转发了 央视财经 的微博:#互联网时代#【周鸿祎创业秘笈:做互联网买卖 必须尊崇“用户至上”精神】360公司CEO周鸿祎:互联网讲究的不是把东西卖给谁,而是我如何提供有价值的服务,和我的用户永远保持连接,我的用户不是一锤子买卖,是长期的关系。在互联网上网聚人的力量会产生巨大的化学反应。直播地址http://t.cn/RPkRL1I [组图共4张]  原图 赞[122] 原文转发[732] 原文评论[341] 转发理由:很高兴又见到小丫同学风采依旧,她的边看边聊节目很有意思,试图把网络和电视节目结合,就是边看电视边在网上弹幕。算是探索传统媒体融合新媒体。我送她一本我的新书,学习互联网思维。央视是不是应该给每个员工发一本呢  赞[249] 转发[176] 评论[305] 收藏 08月29日 00:13 来自一加手机 不将就
转发了 ChinaVenture投中集团 的微博:【@周鸿祎 :很多厂商只学到小米皮毛】当时我给这些手机厂商讲了很多道理,现在来看其实就是互联网思维。但很可惜没人理解,觉得危言耸听。所有人都看不起小米,都觉得老周在开玩笑。但今天几乎所有手机商都建立了互联网手机品牌,模仿小米玩饥饿营销、粉丝文化。但都是皮毛...http://t.cn/Rhwpl5c  原图 赞[23] 原文转发[170] 原文评论[46] 转发理由:这本书还要卖啊 版税都捐给抗战老兵,所以别把书中内容剪刀浆糊弄出来,强调一下这本书不是360或我的传记,是用互联网很多公司案例讲述互联网思维//现在微博小编都这么没节操吗?我夸奖腾讯百度小米的这些成功案例都出自我的新书《我的互联网方法论》,但你小编把出处写出来就这么难吗?  赞[174] 转发[75] 评论[164] 收藏 08月31日 21:39 来自一加手机 不将就
突然一位朋友私信我,满嘴喷粪,我问他出什么事了 也不回答,谁帮我查查他怎么回事 [组图共2张]  原图 赞[1294] 转发[671] 评论[2475] 收藏 08月28日 23:30 来自一加手机 不将就
转发了 ChinaVenture投中集团 的微博:【@周鸿祎 :很多厂商只学到小米皮毛】当时我给这些手机厂商讲了很多道理,现在来看其实就是互联网思维。但很可惜没人理解,觉得危言耸听。所有人都看不起小米,都觉得老周在开玩笑。但今天几乎所有手机商都建立了互联网手机品牌,模仿小米玩饥饿营销、粉丝文化。但都是皮毛...http://t.cn/Rhwpl5c  原图 赞[23] 原文转发[170] 原文评论[46] 转发理由:现在微博小编都这么没节操吗?我夸奖腾讯百度小米的这些成功案例都出自我的新书《我的互联网方法论》,但你小编把出处写出来就这么难吗?  赞[113] 转发[132] 评论[142] 收藏 08月31日 21:21 来自nubia Z5S mini

注意:爬虫频率不宜过高,建议不要使用过多线程数.


如果有疑问,可加WebCollector官方讨论群:

QQ群:250108697


用WebCollector爬取新浪微博数据