专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  “给我滚出贵大!”郑强出任贵州大学校长,打算 ... ·  2 天前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  3 天前  
Python开发者  ·  国产 DeepSeek V3 ... ·  4 天前  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  3 天前  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  3 天前  
51好读  ›  专栏  ›  python

QQ空间爬虫(一天可抓取 400 万条数据)

python  · 公众号  · Python  · 2018-03-15 16:38

正文

记得关注+转发哟




1
环境、架构

开发语言:Python2.7
开发环境:64位Windows8系统,4G内存,i7-3612QM处理器。
数据库:MongoDB 3.2.0
(Python编辑器:Pycharm 5.0.4;MongoDB管理工具:MongoBooster 1.1.1)

主要使用 requests 模块抓取,部分使用 BeautifulSoup 解析。
多线程使用 multiprocessing.dummy 。
抓取 Cookie 使用 selenium 和 PhantomJS 。
判重使用 BitVector 。
2
使用说明:

启动前配置:
MongoDB安装好 能启动即可,不需要配置。
Python需要安装以下模块(注意官方提供的模块是针对win32系统的,64位系统用户在使用某些模块的时候可能会出现问题,所以尽量先找 64位模块 ,如果没有64的话再去安装32的资源):
requests、BeautifulSoup、multiprocessing、selenium、itertools、BitVector、pymongo

另外我们需要使用到 PhantomJS,这并不是 Python 的模块,而是一个exe可执行文件,我们可以利用它模拟浏览器去获取 Cookie 。使用方法:将 phantomjs-2.0.0-windows.zip 压缩包里面的 phantomjs.exe 放到你的 Python 目录下就行了。


启动程序:


  1. 进入 myQQ.txt 写入QQ账号和密码(用一个空格隔开,不同QQ换行输入),一般你开启几个QQ爬虫线程,就至少需要两倍数量的QQ用来登录,至少要轮着登录嘛。

  2. 进入 init_messages.py 进行爬虫参数的配置,例如线程数量的多少、设置爬哪个时间段的日志,哪个时间段的说说,爬多少个说说备份一次等等。

  3. 运行 init.py 文件开启爬虫项目。

  4. 爬虫开始之后首先根据 myQQ.txt 里面的QQ去获取 Cookie(以后登录的时候直接用已有的Cookie,就不需要每次都去拿Cookie了,遇到Cookie失效也会自动作相应的处理)。获取完Cookie后爬虫程序会去申请四百多兆的内存, 申请的时候会占用两G左右的内存,大约五秒能完成申请,之后会掉回四百多M

  5. 爬虫程序可以中途停止,下次可打开继续抓取。

















请到「今天看啥」查看全文