网页抓取qq(爬虫分布式扩展(.py)使用说明书(一))

优采云 发布时间: 2022-04-03 19:06

  网页抓取qq(爬虫分布式扩展(.py)使用说明书(一))

  前言

  本文是作者的开源项目 QQSpider 的文档。主要是替换了程序中一些不可用的链接,处理了登录时的验证码,优化了去重队列。并且可以非常简单的实现爬虫分布式扩展。

  Github 项目名称:QQSpider

  使用说明

  1、启动前的配置:

  需要安装的软件:python、Redis、MongoDB(Redis和MongoDB都是NoSQL,服务启动后可以连接,不需要建表什么的)。

  需要安装的 Python 模块:requests、BeautifulSoup、multiprocessing、selenium、itertools、redis、pymongo。

  我们需要使用phantomJS(下载地址:)登录QQ。下载后将里面的phantomjs.exe解压到python目录下。

  2、启动程序:

  输入myQQ.txt,填写QQ账号和密码(在不同的QQ行输入,账号和密码用空格隔开)。如果只是测试,放三两个QQ号就够了;但是如果开启多线程*敏*感*词*爬虫,则需要使用多一点的QQ账号(thread_num_QQ的2~10倍),账号少了容易被检测为异常行为。.

  进入init_messages.py配置爬虫参数,如线程数,爬取日志的时间段,讨论的时间段,爬多少,备份一次等。

  运行launch.py​​启动爬虫。

  代码说明

  mongodb用来存储数据,redis用来存储QQ和要爬取的cookies。

  之前爬虫用BitVector去重,也有人反映经常报错,所以现在使用基于Redis的去重,内存使用不超过512M,可以容纳45亿QQ号瞬间去重,方便分布式扩展。

  爬虫使用phantomJS模拟登陆QQ空间,有时会出现验证码。我用的是云码(自百度),准确率还是很高的。QQ验证码为4位纯英文,5元可识别1000个验证码。如有需要请自行注册购买,在yundama.py中填写账号、密码、a*敏*感*词*ey,然后将public_methods.py中的dama=False修改为dama=True。

  分散式。现在*敏*感*词*队列和去重队列已经放到了 Redis 上。如果需要同时爬几台机器,只需要将代码复制到另一台机器上,将连接Redis时的localhost改成同一台机器的IP即可。而已。如果要将爬取的数据保存到同一台机器上,只需将连接MongoDB时的localhost改成机器的IP即可。

  为了让程序不那么复杂和难懂,本项目只使用了多线程,即只使用了一个CPU。如果实际生产运行,可以考虑稍微修改一下程序,换成多进程+协程,或者异步。它会快得多。

  最后提醒一下,爬虫无非是模仿人们在浏览器中上网的行为,爬虫一般不能抓取你在浏览器上看不到的信息。所以,别问我能不能破解别人的相册,加了空间访问权限的人是不能访问的。在程序输出的日志中,2016-11-19 01:05:33.010000 failure:484237103 (None - )一般是QQ无法访问。另外,我们不能查看一个QQ的所有好友,所以爬下来的好友信息只是部分好友。爬虫不是黑客,望理解。

  结语

  爬虫是后台任务,主要看爬取效率,没有好的用户界面,需要经常维护。所以对于完全没有编程基础的人来说,可能会遇到各种各样的问题。本项目的初衷是为大家提供一个QQ空间爬虫的框架,并不保证程序可以一直运行。只要腾讯服务器稍有变化,比如某个链接发生变化,程序就可能无法抓取数据。此时,程序也应相应地用新的链接替换链接。如果网页的结构发生变化,解析规则也应相应调整。修订。需要样本数据进行科学研究的可以通过邮件联系作者:.

  如有疑问,请尽量留言,方便以后遇到同样问题的同学查阅。

  专栏作家简介

  九茶

  Python工程师,现居广州。Github上著名的开源爬虫QQSpider和SinaSpider的作者经常在CSDN上分享一些爬虫、数据等好处。爬取的网站包括QQ空间、新浪微博、Facebook、Twitter、WooYun、Github、SearchCode、CSDN、博客园、天猫、大众点评、土巴、域名和IP数据、证券投资数据、中国土地数据、部分政府< @网站等,除了爬虫领域,还会分享一些Python小应用(如Python+PhantomJS批量账号注册、登录等)。接下来,将在Python中文社区分享一些大数据操作(ES、Spark)和数据挖掘方面的Python应用。文章 的。

  CSDN:

  GitHub:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线