QQ空间说说抓取难度比较大,花了一个星期才研究清楚!

代码请移步到GitHub GitHub地址:https://github.com/20100507/Qzone 【没有加入多线程,希望你可以参与进来加入多线程不过 单个QQ请求频率不可以太高  过多的线程就需要 更多的QQ小号轮流登录】 不要忘了点一个赞 哈哈哈~~

1. 截图看一看效果:

1.1抓取执行过程:

1.2 部分数据截图:

1.3 每一个说说的具体内容

1.4 70W说说数据文件大小:

2.接下来分析整个执行的流程

2.1代码结构图【项目是采用Maven构建】:

简单的说一下整个代码的结构:

QQBean         是对QQ密码和账号的简单的一个封装,

VerifyCode      提取验证码的【如果你的QQ号码是异地登录就需要输入验证码或者腾讯检测到你不安全】

QzoneEncrypt 加密 俩个重要的参数 一个是加密QQ密码【腾讯在传输密码是做得很安全】,一个是加密g_tk,这个在获取说说时必须携带

GetQQByProperties  读取num.properties文件中的QQ账号和密码

KeyWord   对QQ账号密码 和关键参数的一个提取

Login 使用加密后的密码和QQ账号 登录 获取相关重要的cookie

InputNameAndPwd 在login基础上再次调用其他登录接口直到真正登录到平常打开的QQ空间好友动态页面从页面中提取到 g_qzonetoken

GetMsgBoard 获取QQ用户留言

GetQNum 获取你的好友的列表

GetShuoShuoData 获取说说数据

login.js 是网上的一位高人,提取加密QQ密码的js精华

entry.js是对g_tk的加密的获取

num.properties 是存放QQ和密码的地方 如果你真的想保存数据的话 你最好放上6个无须验证码登录的QQ小号 就临时注册几个就完事了,切记一定不要使用一个,否则封号了就吉吉了。

2.2Visio分析流程

上面的Vsio的图,和代码中基本上都对应了,对于保存留言也很简单,换一个路径就好,所有的必要参数和cookie都已经拿到。如果想要保存一个人所有的QQ说说数据,切换分页的参数即可,but,我的代码中没有加入分页,仅仅保存每个QQ用户的首页的说说数据,懒得弄了,就是那么回事,就是在研究参数和cookie真的很费劲!!!!

2.3 测试代码中 请注意:

1. 注意我写的 try-catch,之前程序没有使用try-catch,程序在执行中 ,会由于网络原因抛出异常 ,如果抛给了虚拟机 ,JVM就停止,程序就挂了,干脆我就catch异常,如果catch到异常,我就在递归再次调用你,防止网络原因,导致程序极容易停止。

2.注意一点,我的在  %25 ,也就是轮询QQ号登陆,每个QQ号采集25个用户我就重新换其他的QQ用户登录,num.properties中的QQ数量越多越好【封号率越低】,%多少看自己的喜好!

1 package qzone_enter;

2

3 import java.io.IOException;

4 import java.util.List;

5

6 import org.bianqi.enter.bean.QQBean;

7 import org.bianqi.enter.key.GetQQByProperties;

8 import org.bianqi.enter.key.KeyWord;

9 import org.bianqi.enter.login.InputNameAndPwd;

10 import org.bianqi.getdata.GetShuoShuoData;

11

12 public class GetMyShuoShuo {

13

14 public static List listQQ = null;

15 public static int k = 0;

16

17 static {

18 try {

19 listQQ = GetQQByProperties.getQQNumAndPwd();

20 KeyWord.uin = listQQ.get(k).getNum();

21 KeyWord.password = listQQ.get(k).getPwd();

22 System.out.println("初始化"+KeyWord.uin+"登录~~~~~~~~~~~~~");

23 InputNameAndPwd.login();

24 } catch (IOException e) {

25 e.printStackTrace();

26 }

27 }

28

29 public static void getShuoshuoDemo(long i, long j) throws Exception {

30 try {

31 for (; i <= j; i++) {

32 if (i % 25 == 0) {

33 if (k == listQQ.size()) {

34 k = 0;

35 }

36 KeyWord.uin = listQQ.get(k).getNum();

37 KeyWord.password = listQQ.get(k).getPwd();

38 System.out.println("切换到"+KeyWord.uin+"登录");

39 InputNameAndPwd.login();

40 k++;

41 }

42 GetShuoShuoData.getShuoData(Long.toString(i));

43 System.out.println(KeyWord.uin+"正在采集==============QQ用户" + i + "数据=======================");

44 }

45 } catch (Exception e) {

46 e.printStackTrace();

47 GetMyShuoShuo.getShuoshuo(i, j);

48 }

49 }

50

51 public static void getShuoshuo(long i, long j) throws Exception {

52 try {

53 for (; i <= j; i++) {

54 if (i % 25 == 0) {

55 if (k == listQQ.size()) {

56 k = 0;

57 }

58 KeyWord.uin = listQQ.get(k).getNum();

59 KeyWord.password = listQQ.get(k).getPwd();

60 System.out.println("切换到"+KeyWord.uin+"登录");

61 InputNameAndPwd.login();

62 k++;

63 }

64 GetShuoShuoData.getShuoData(Long.toString(i));

65 System.out.println(KeyWord.uin+"正在采集==============QQ用户" + i + "数据=======================");

66 }

67 } catch (Exception e) {

68 e.printStackTrace();

69 GetMyShuoShuo.getShuoshuoDemo(i, j);

70 }

71 }

72

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

74 // 开始QQ号 结束QQ号

75 long i = 669424;

76 long j = 2000000000;

77 getShuoshuo(i, j);

78 }

79 }

3.1总结

就目前来看,我的网速可能不是很好,但是一天依然可以保存30W说说数据,但是有时候程序也会假死,也许是网络不好。

还有,有时候 莫名的需要你输入验证码,没有办法你就在浏览器输入这个QQ账号密码,手动多输入几次验证码,他就一般不会检测了。不在需要验证码

PS【验证码需要打码平台 但是我没有整,but 需要money哦~还有 , 验证码图片会自动保存到项目路径下但是,手动输入验证码目前程序也不通过,可以修复的帮我修                     复一下 谢谢~~~】

num.properties中 QQ号码低于12个也有可能封号,再次强调QQ小号一定要多,让他检测不出你是爬虫。如果你就一个QQ号就不要尝试玩 ,封号不要怪我!

没有采用多线程技术,一个原因我也没有那么多的QQ小号。如果每一个QQ访问频率太高就会封号!!

记得在GitHub点一个赞!哈哈哈

转自:http://www.cnblogs.com/bianqi/p/7206885.html

qq空间java版_Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】...相关推荐

  1. Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】

    Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析 QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:http ...

  2. qq空间java_Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析...

    QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址: 1. 截图看一看效果: 1.1抓取执行过程: 1.2 部分数据截图: 1.3 每一个说说的具体内容 ...

  3. java 股票_java抓取东方财富股票数据

    背景 前段时间给朋友写了一个自动抓取同花顺股票数据的程序,不少人觉得不错. 这几天后台有粉丝给我留言让我也抓一下东方财富的数据,说东方财富的数据特别难抓,我还真不一定能搞得定. 本来我是一个德艺双磬且 ...

  4. java股票数据_java抓取东方财富股票数据(附源码)

    背景 前段时间给朋友写了一个自动抓取同花顺股票数据的程序,不少人觉得不错. 这几天后台有粉丝给我留言让我也抓一下东方财富的数据,说东方财富的数据特别难抓,我还真不一定能搞得定. 本来我是一个德艺双磬且 ...

  5. java象棋无框架版_Java版中国象棋

    /* *中国象棋Java *作者:yanick *源文件:Chess.java *最后修改时间:2006-11-1 *添加功能:实现了当前棋局的保存 *Chess.java */ import jav ...

  6. qq邮箱格式的Java代码_Java实现QQ邮件发送

    首先我们需要两个jar包,点击下面即可下载这两个包: 我们这里采用QQ邮箱发送邮件为例,代码如下: package ddd; import java.util.Properties; import j ...

  7. java课程设计qq,模块java课程设计报告qq聊天

    河南工业大学 课程设 计 课程设计名称: ja  a qq聊天系统 学生姓名 : x  aoy    指导教 师: 王高平 课程设计时间: 2016.7.7 计科 专业课程设计任务书 说明: ...

  8. java jsoup爬动态网页_使用Jsoup+HtmlUnit抓取动态网页数据

    最后更新日期为2018.1.3 只为自己留个记录 待添加功能: 1.获取历史全部消息 2.爬取大于10条数据 3.自定义抓取公众号信息 package cc.buckler.test; import ...

  9. java 省市县数据_使用Jsoup抓取全国地区数据(省市县镇村)

    最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到 ...

  10. 抓取抖音数据(fiddler+uiAutomator2+java)

    最近研究抖音的爬虫,获取抖音的粉丝信息,分享给大家(共同学习,进步)我会把相关代码上传,方便大家直接下载使用 使用的软件:fiddler + androidStudio(MyEclipse/eclip ...

最新文章

  1. Java线程如何转储
  2. ORA-01555 snapshot too old
  3. Kubernetes 容器网络模型和典型实现
  4. concurrent: CyclicBarrier
  5. java多线程之线程的安全性(一)
  6. javafx android sdk,JavaFX打包到Android上
  7. 文件的写操作 c# 1614527940
  8. 敏捷开发一千零一问系列之十:总体架构什么时机进行?(下)
  9. React配置代理proxy解决跨域问题
  10. 3-单一职责原则+4-开放封闭原则+5依赖倒转原则
  11. Monte Carlo Approximations
  12. Windows Server 2008 R2 安装及配置
  13. vue 项目内vue指令常用
  14. 基于eclipse和hiber的pojo、数据库表与mapping的相互转换(二)
  15. 文献简读——大肠中胰蛋白酶降解共生菌的鉴定【Identification of trypsin-degrading commensals in the large intestine】
  16. f5负载mysql_F5 LTM 负载均衡理论 | 奕中世界
  17. [U盘] 如何恢复U盘容量
  18. Kafka的消息模型
  19. 训练好的深度学习模型是怎么部署的?
  20. 冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见

热门文章

  1. 计算机网络-第1章-PPT
  2. 用canvas画圆形雷达图
  3. 计算机术语中的channel,English 中关于道路方面用词之(4)—Channel, Tunnel
  4. Vue3.0 项目启动(打造企业级音乐App)
  5. 摆脱“咖喱味”,让Win11的右键菜单回归经典
  6. 无支付牌照的电商平台“二清”通病问题需彻底根治
  7. 7的倍数(shell脚本 day01)
  8. [适合小白的Linu基础入门教程一
  9. (转)2016年对冲基金经理“封神榜”
  10. 文档管理系统OnlyOffice在线编辑功能