用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

时间: 2024-12-20 16:51:06

用WebCollector爬取新浪微博数据的相关文章

亲测超级好用WebCollector抓取新浪微博数据(提供下载所有爬虫包)

抓下来返回text是这样的: 需要用到的包:下载地址:http://pan.baidu.com/s/1o69myOq 两个类的代码 WeiboCN.java import java.util.Set; import cn.edu.hfut.dmic.webcollector.*; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebElement; import org.openqa.selenium.htmlunit

用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.示例代码: package cn.edu.hfut.dmic.webcol

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

[Python爬虫] Selenium爬取新浪微博移动端热点话题及评论 (下)

这篇文章主要讲述了使用python+selenium爬取新浪微博的热点话题和评论信息.其中使用该爬虫的缺点是效率极低,傻瓜式的爬虫,不能并行执行等,但是它的优点是采用分析DOM树结构分析网页源码并进行信息爬取,同时它可以通过浏览器进行爬取中间过程的演示及验证码的输入.这篇文章对爬虫的详细过程就不再论述了,主要是提供可运行的代码和运行截图即可.希望文章对你有所帮助吧~ 参考文章 [python爬虫] Selenium爬取新浪微博内容及用户信息 [Python爬虫] Selenium爬取新浪微博客户

爬虫再探实战(五)———爬取APP数据——超级课程表【一】

关于爬虫,开始以为只能爬取网页数据,后来知道APP也能抓取.于是,在学校利用空闲时间,耗时两周实现了数据的抓取和简单的数据分析. 目标,抓取超级课程表XX大学(其实是我们大学啦...)学生20000条发帖信息.思路如下: STEP1:为我们的爬虫找到入口 APP请求数据,也是通过网络协议,这样,我们就抓包来定位入口,这里我用的是fiddler.关于设置手机和fiddler的关联,请参考这篇文章. 找到登陆入口为:http://120.55.151.61/V2/StudentSkip/loginC

利用linux curl爬取网站数据

看到一个看球网站的以下截图红色框数据,想爬取下来,通常爬取网站数据一般都会从java或者python爬取,但本人这两个都不会,只会shell脚本,于是硬着头皮试一下用shell爬取,方法很笨重,但旨在结果嘛,呵呵. 2.首先利用curl工具后者wget工具把整个网站数据爬取下来 curl 网址 >wangzhan.txt 3.查看wangzhan.txt文件,找出规则,看到数据是存放在哪个地方,本人是把txt文件拷到本机上用UE打开方便查看.通过查看文件,我发现数据是存储在"var aut

用WebCollector爬取网站的图片

用WebCollector爬取整站图片,只需要遍历整站页面,然后将URL为.jpg.gif的页面(文件)保存到本地即可. 例如我们爬取一个美食网站,获取里面所有的图片: import cn.edu.hfut.dmic.webcollector.crawler.BreadthCrawler; import cn.edu.hfut.dmic.webcollector.model.Page; import cn.edu.hfut.dmic.webcollector.util.FileUtils; im

抓取新浪微博数据存入MongoDB,避免重复插入微博数据的方法

def getMyDatalist(): #id这个key key = str(u'id').decode('utf-8') #存储旧数据的id列表 old_ids = [] #存储新微博的列表 extr_wb = [] #从MongoDB上获取的数据 old_datalist = weibodata.find() for old in old_datalist: old_ids.append(old[key]) #从微博上抓取新数据 data = client.statuses.home_ti

爬取百万数据的采集系统从零到整的过程

目录 需求 分析 设计 实现 框架 采集 遇到的问题 demo 数据 效果 数据 关注关注我的公众号啊 前言:记录下在上家公司负责过的一个采集系统从零到整的过程,包括需求,分析,设计,实现,遇到的问题及系统的成效,系统最主要功能就是可以通过对每个网站进行不同的采集规则配置对每个网站爬取数据,目前系统运行稳定,已爬取的数据量大概在600-700万之间(算上一些历史数据,应该也有到千万级了),每天采集的数据增量在一万左右,配置采集的网站1200多个,这个系统其实并不大,但是作为主要的coding人员