昨天发现了一个群中人虽然很多,有一千人,但是没有几个人说话,群中一位朋友说有许多人是死号,我好奇去看了看,发现确实如此,有许多人的空间中说说,照片,日志都是0,访客只有几百,甚至几十,想通过学过的Python做一点事,思路是通过Python+selenium通过浏览器动态登录qq空间,然后通过selenium的find_elements_by_class_name动态获取网页的内容中qq成员的网址,然后存入数组,加载完后,遍历数组中每一个qq成员去加载成员空间网址,之后,通过find_element_by_id得到每个成员的说说,照片,日志数量,当然有的空间限制非好友访问,抓取不到,默认为是活号。还有的空间有自定义空间,与其他空间不同,也抓取不到数据,默认为是活好。只有说说,照片,日志数量都是0的号,我们认为是死号。
于是用Python写了代码查看,结果如下:
其中success:70是访问对方空间成功并且说说,照片,日志的数量不全为0,有70人。
fail:71是访问权限受限,有71人。false:853是访问对方空间成功并且说说,照片,日志的数量全为0,有853人。这说明这个群有853死号,这些号的qq号大多数是10位,以3开头,应该是买来的。
首先:
安装Python3,32位的先,去官网下,然后去找一个集成开发环境(IDE),我安装的pycharm。现在可以抓取一些静态网页了,记住(Python2中urllib2,在Python3中是urllib,自己查),我首先通过浏览器的开发人员工具(快捷键F12)去观看源代码,如图:
查找源代码特征(审查元素是一个好东西,用审查元素能节省你查找信息的时间),发现了一些特征,见图:
每个成员的网址在href中,而且他们都有共同的class,这一点我们可以利用,想到这里,是不是大功告成了?很遗憾,远远不够,我试着获取,却发现没有这个东西。这个文件是动态加载的,跟ajax有关系,(现在许多网页都是动态加载,urllib的作用不如以前,用selenium可以),selenium是什么东西?Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。selenium就是一个自动化测试工具。现在有三种方法获取成员的href:直接在开发人员工具中获取,复制到一个文本文件中,然后通过代码读取文件,正则匹配【reg = r'href="http://user.qzone.qq.com/\d{8,1