用python爬取qq空间说说

环境:PyCharm+Chorme+MongoDB Window10

爬虫爬取数据的过程,也类似于普通用户打开网页的过程。所以当我们想要打开浏览器去获取好友空间的时候必定会要求进行登录,接着再是查看说说。那么我们先把登录步骤给解决了。

1.模拟登录QQ空间

因为想更直观的看到整个登录过程所以就没有用selenium+phantomjs,而是结合Chorme使用。除了slenium和Chorme之外还需要下载ChormeDriver进行使用,官网不提供win64版本的但是win32版本的也能正常在64位系统使用 我使用的是2.30版本的ChormeDriver和61的Chorme。

2.通过浏览器的开发者工具查看数据来源。

在打开说说页面之前打开开发者工具点击NetWork选择XHR你会看到如下的几个网址通过查看Response。

                                 筛选XHR后显示的地址                                            

获取数据所需的参数

通过多次请求发现不断改变g_tk值,但是这个值是通过加密算法得到的在网上查了下发现了这个加密算法。

3.将数据获取并储存到数据库中。

既然已经搞清楚数据是怎么来的那么就可以开始考虑将获取的数据保存到数据库里了,这次我们选择的是MongoDB,MongoDB的数据储存格式为BSON类似于JSON。在获取过程需要考虑两个问题,一是你是否有权限访问该空间,二是在能访问的情况下不能无止境的爬下去需要判断该空间说说是否爬取完毕。在爬取过程中将不能访问的QQCode存入list在最后跑完的时候输出。事已至此经过漫长的等待以及和服务器不断的交互所有的数据都存入了数据库中接下来就该对数据进行处理了!!

4.处理数据,大概爬下来11万条左右的数据

将获取的位置信息标记在地图上可以看到红点密集的地方大概也是旅游时大家比较想去的地方。

通过部分说说得到的发送设备信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

redis 学习指南

http://www.cnblogs.com/hoojo/p/4466024.html

22410
来自专栏PHP在线

PHP输入流php://input介绍

在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php:...

49750
来自专栏散尽浮华

Centos7下ELK+Redis日志分析平台的集群环境部署记录

之前的文档介绍了ELK架构的基础知识(推荐参考下http://blog.oldboyedu.com/elk/),日志集中分析系统的实施方案: - ELK+Red...

33240
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令五

1. vi vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。 Linux中一般默认安装的的编辑器叫vi,而vim是vi的增强版(vi...

28960
来自专栏python3

python之Windows调试

然后在代码的那个idle界面为代码添加断点,所谓断点简单的说就是调试程序时需要停顿的位置,一般在函数的入口,参数变化的行添加,这里只在fac函数入口添加一个断点...

8310
来自专栏丑胖侠

Zookeeper开源客户端Curator之基本功能讲解

简介 Curator是Netflix公司开源的一套Zookeeper客户端框架。了解过Zookeeper原生API都会清楚其复杂度。Curator帮助我们在其基...

37950
来自专栏一个会写诗的程序员的博客

Cookie 和 Session 机制原理分析 & 区别对比

Web application servers are generally "stateless":

17020
来自专栏Java帮帮-微信公众号-技术文章全总结

Java企业面试——Javaweb

2.Javaweb阶段 2.1 Ajax你以前用过么?简单介绍一下 AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速...

37680
来自专栏linjinhe的专栏

LevelDB:写操作

其中,Put 和 Delete 的实现都是通过封装 Write 来实现的,函数调用关系如下:

35840
来自专栏c#开发者

消息队列(Message Queue)简介及其使用

消息队列(Message Queue)简介及其使用 利用 MSMQ(Microsoft Message Queue),应用程序开发人员可以通过发送和接收消息方...

51880

扫码关注云+社区

领取腾讯云代金券