java爬虫新浪微博_一个基于微博用户数据的Java爬虫项目

本项目是一个抓取微博数据的爬虫程序,抓取用户的个人信息以及用户的关注列表 程序会对用户的关注列表的关注列表进行再次抓取,数据库中已抓取的不再抓取

详情请去    欢迎star

https://github.com/JiaoPaner/WeiboSpider

下面展示的只是部分代码

1.[图片] info2.jpg

22191622_TdIo.jpg

2.[图片] spider2_33.jpg

16194803_USml.jpg

3.[代码][Java]代码

package com.jp.sipder;

/* 作者:jiaopan

* 时间:2016.5

* */

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

public class Spider {

//http://weibo.com/p/1005053472041784 访问个人主页

//http://weibo.com/p/1005053472041784/info?mod=pedit_more //个人信息页面

//http://weibo.com/p/1005053472041784/follow?&page=3 翻页

//抓取对关注的关注

//http://weibo.com/p/100505"+用户ID+"/follow?&page=3 //不用更改cookie

//you must modify the the value of cookies base on your own Weibo account

//你必须根据你自己的微博账号更改这个cookies的值 【利用浏览器的抓包工具】

private static String cookies="your own cookies";

//获取关注列表的方法

public static String getHtml(String url) throws Exception{

String html=null;

OkHttpClient client=new OkHttpClient();

Request request=new Request.Builder()

.url(url)

.addHeader("Cookie",cookies)

.addHeader("Host", "weibo.com")

.addHeader("User-Agent",userAgent)

.build();

Response response=client.newCall(request).execute();

if(response.isSuccessful()){

html=response.body().string().replace("\\", "");

Document doc=Jsoup.parse(html);

Elements scripts = doc.getElementsByTag("script"); //获取script标签

//Element script=scripts.get(scripts.size()-1); // 获取包含了网页内容的script标签

//System.out.println(script.html());

Pattern p=Pattern.compile("\"html\":\""); //从该json数据格式中抽取出html内容

String htmlstr="";

for(Element script:scripts){

Matcher m=p.matcher(html=script.html());

if(m.find()){

String str=html.substring(m.end(),html.length()-3);

htmlstr+=str;

}

}

html=Jsoup.parse(htmlstr).html();

//System.out.println(html);

}

else{

System.out.println("Network is error");

}

return html;

}

//测试

public static void main(String[] args) throws Exception{

//getHtml("http://weibo.com/p/1005053472041784/info?mod=pedit_more");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值