用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.webcollector.weiboapi;

import cn.edu.hfut.dmic.webcollector.crawler.DeepCrawler;
import cn.edu.hfut.dmic.webcollector.model.Links;
import cn.edu.hfut.dmic.webcollector.model.Page;
import cn.edu.hfut.dmic.webcollector.net.HttpRequesterImpl;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 *
 * @author hu
 */
public class WeiboCrawler extends DeepCrawler{

    public WeiboCrawler(String crawlPath) throws Exception {
        super(crawlPath);
        /*获取新浪微博的cookie,账号密码以明文形式传输,请使用小号*/
        String cookie=WeiboCN.getSinaCookie("微博用户名", "微博密码");
        HttpRequesterImpl myRequester=(HttpRequesterImpl) this.getHttpRequester();
        myRequester.setCookie(cookie);
    }

    @Override
    public Links visitAndGetNextLinks(Page page) {
        /*抽取微博*/
        Elements weibos=page.getDoc().select("div.c");
        for(Element weibo:weibos){
            System.out.println(weibo.text());
        }
        /*如果要爬取评论,这里可以抽取评论页面的URL,返回*/
        return null;
    }

    public static void main(String[] args) throws Exception{
        WeiboCrawler crawler=new WeiboCrawler("/home/hu/data/weibo");
        crawler.setThreads(3);
        /*对某人微博前5页进行爬取*/
        for(int i=0;i<5;i++){
            crawler.addSeed("http://weibo.cn/zhouhongyi?vt=4&page="+i);
        }
        crawler.start(1);
    }

}

运行结果:

2015年来了,恭祝微博朋友和360用户新年万事如意!顺便向诸位汇报一下2014年360取得的科技进步:截止至2014年12月31日,360在过去的一年里专利申请总数达到1999件,其中国内发明专利申请:1570件;外观和实用新型专利:212件;海外专利申请:217件,累积申请专利总数已超四千件。 赞[1422] 转发[221] 评论[446] 收藏 01月01日 00:09 来自一加手机 不将就
转发了 徐付群 的微博:【山东省民政部门承诺:负伤致残原国民党抗战老兵可与八路军享同等待遇】 明确对生活在大陆农村的和城镇无工作单位且生活困难的原国民党抗战老兵,给予生活困难救助,救助标准可参照抗日时期入伍的在乡复员军人执行,所需资金通过各地自筹、社会捐赠等渠道解决。 http://t.cn/RZyVNr3  原图 赞[373] 原文转发[2246] 原文评论[399] 转发理由:山东民政部做的不错,赞!@孙春龙 #寻找你身边的抗战老兵#  赞[582] 转发[274] 评论[303] 收藏 2014-12-31 11:13:02 来自一加手机 不将就
转发了 360杀毒 的微博:2014年最后一天,小编的粉丝还不足10万。愁啊。。咋办?有了,小编刚搞到5台360儿童手表,介个当抽奖最好了。看这区区10万粉丝,中奖的概率还是很大滴。这样,只要①关注我的微博,②转发这条微博,③@ 一个好友,就有机会中奖!转起来吧,阿弥陀佛,转发的发大财!不转的发小财! [组图共2张]  原图 赞[94] 原文转发[2531] 原文评论[1076] 转发理由:少不了我这个拉低中奖率专业户,并祝大家新年发财 @360安全卫士  赞[313] 转发[464] 评论[656] 收藏 2014-12-31 14:51:13 来自360安全浏览器
转发了 敖歌 的微博:百度杀毒删不掉。@周鸿祎 @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

时间: 2024-10-06 01:32:50

用WebCollector 2.x爬取新浪微博(无需手动获取cookie)的相关文章

用WebCollector爬取新浪微博数据

用WebCollector可以轻松爬取新浪微博的数据. 首先需要一个能查看cookie的浏览器插件,推荐使用 firefox浏览器+firebug(插件). 具体步骤: 1.用浏览器打开 http://weibo.cn/pub/   这是新浪微博面对手机用户的一个入口.建议不要使用自己的账号来做爬虫.之所以选择weibo.cn来爬去,是因为这个手机版的限制较少,但是weibo.cn的账号密码都是以明文传输,所以为了防止盗号,建议新申请账号进行爬取. 2.登陆进去后,进入个人微博界面(不是http

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

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

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

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

用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)

简单介绍: WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API.仅仅需少量代码就可以实现一个功能强大的爬虫. 怎样将WebCollector导入项目请看以下这个教程: JAVA网络爬虫WebCollector深度解析--爬虫内核 參数: WebCollector无需繁琐配置.仅仅要在代码中给出以下几个必要參数,就可以启动爬虫: 1.种子(必要): 种子即爬虫的起始页面.一个爬虫可加入一个或多个种子. 2.正则(可选): 正则是约束爬取范围的一些正

Python爬取新浪微博评论数据,写入csv文件中

因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cookies和headers # -*- coding: utf-8 -*- import requests import csv import os base_url = 'https://m.weibo.cn/api/comments/show?id=4131150395559419&page={pa

webcollector 2.x 爬取搜狗搜素结果页

1 /** 2 * 使用搜狗搜索检索关键字并爬取结果集的标题 3 * @author tele 4 * 5 */ 6 public class SougouCrawler extends RamCrawler{ 7 8 public SougouCrawler() { 9 10 } 11 12 public SougouCrawler(String keyword,int maxnum) { 13 for(int i=1;i<=maxnum;i++) { 14 //拼接url 15 String

利用Python爬取新浪微博营销案例库并下载到本地

1 from bs4 import BeautifulSoup 2 import requests,urllib.request,urllib.parse 3 import json 4 import time 5 import os 6 headers = {'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.

爬取新浪微博内容(手机新浪微博,pc版本的抓取不到内容,ps:找不到网址!)

1 #!usr/bin/env python 2 #coding:utf-8 3 4 import urllib2 5 import cookielib 6 from bs4 import BeautifulSoup 7 8 #cookie = cookielib.CookieJar() 9 #hander = urllib2.HTTPCookieProcessor(cookie) 10 #opener = urllib2.build_opener(hander) 11 12 user_agen

爬取新浪微博

崔庆才 学到的东西. 1 习惯用logger,而不是用print self.logger.debug('{}开始解析'.format(response.url)) 2 习惯用正则表达式 s = '5分钟前' if re.match('\d+分钟前',s): minute = re.match('(\d+)',s).group(1) datetime = time.strftime('%Y-%m-%d %H:%M',time.localtime(time.time()-float(minute)*