首页 > 其他分享 >基于Selenium库模拟用户行为的QQ空间爬虫

基于Selenium库模拟用户行为的QQ空间爬虫

时间:2023-06-02 17:56:08浏览次数:43  
标签:QQ qq Selenium 爬虫 爬取 内容 好友

QQ空间爬虫

代码链接:https://github.com/hhr346/QQ_zone_crawl

该程序的主要实现过程是进入某位好友的空间中,并自动爬取说说的文本内容并存储到txt文件中。方法是使用Chrome浏览器的自动执行功能,来实现翻页,并对html的源代码进行文本提取,通过正则表达式来实现某一块内容的提取。将发布人名称、说说的文本内容、发布日期都写入一个文本文件中。

主要参考文章链接为(https://blog.csdn.net/weixin_43325134/article/details/105859772)

借鉴了该文章的思路,但根据我自己的需求做了较多的更改,具体有以下几个方面:

  1. 更换了爬取的门户网站,从而更换了之前的自动向下滚动的方式,而是通过翻页的方式来爬取说说;
  2. 没有用pyautogui的库,从而不需要让鼠标一直保持在浏览器上;
  3. 我比较在意动态内容,所以在存储内容上也有所不同,并且将所有动态内容存储到一个文件里,从而更高效的利用空间;
  4. 鲁棒性较好,不会因为刷新问题而找不到按钮从而报错;
  5. 增加了对“展开全文”的点击,从而爬取完整的内容;

具体使用过程:

  1. 下载和自己当前的浏览器版本一致的Chrome Driver,下载网址为(https://chromedriver.chromium.org/);
  2. 填入自己的qq号在my_qq变量里,和要爬取的好友qq号在friendlist,并且在程序运行前先登录桌面端的qq程序,从而更方便快捷的登录qq空间;
  3. 运行程序,并注意可能存在的刷新问题。在出现问题时查看浏览器页面的情况(一般情况下等一段时间就好了)
  4. 在out文件夹里存有爬取的好友列表的说说文件。

注意事项:

  1. 有时候登录可能会比较慢,可以等一会或者重新打开一次(感觉自动登录的速度还不如我直接手动点击呢);
  2. 在网页元素刷新里延时时间很重要,因为刷新不及时导致其还是不能获取也是可能的;
  3. 在使用正则表达式表达时,比较难找到一个普适性的规则,这里本来打算是添加“来自”这个手机标签的,但是有一些说说不会有这个标签(可能是桌面端发的),所以妥协就可能把一部分的来自xxx也加入到日期里了;
  4. 该程序只处理文本,所以图片和只转发内容的不包含其中;

总结:

  1. 查找元素这件事还是有些令人头疼,要精准有效又要有普适性,需要尝试较多次才能找到合适的方法(可能想办法表示其最直观的意义比较好);
  2. 其实能找到自己的朋友圈也可以爬取所有好友的动态内容,但是问题在于有没有翻页的选项;
  3. 后续可添加自动获取全部好友qq号列表的功能,循环获取好友的空间信息、评论的获取、评论的展开等;
  4. 解决了展开按钮的点击问题(虽然可能也会有一些漏网之鱼),但是却可能触发了qq的反爬虫机制,到70页左右就会显示“当前访问人数较多”的页面,导致不能继续爬了。

如果还想继续发展可能要自动判断和重试,但需要等较长时间才能恢复正常。

标签:QQ,qq,Selenium,爬虫,爬取,内容,好友
From: https://www.cnblogs.com/hhr346/p/17452578.html

相关文章

  • 使用Python爬虫爬取网络美女图片
    准备工作安装python3.6略安装requests库(用于请求静态页面)pipinstallrequests-ihttps://mirrors.ustc.edu.cn/pypi/web/simple安装lxml库(用于解析html文件)pipinstalllxml-ihttps://mirrors.ustc.edu.cn/pypi/web/simple安装与配置selenium(用于请求动态页面)pipinstall......
  • # yyds干货盘点 # #经验分享# #网络爬虫# #数据分析# #Python# #每日打卡# #进阶学习#
    大家好,我是皮皮。一、前言前几天在Python群【洋洋】问了一个Python基础的问题,这里拿出来给大家分享下。二、实现过程这里【kim】给出了代码,如下所示:的确满足了粉丝的需求。很多人应该和我一样,想到的是zip吧。zip完全可以,可是他说要for,所以上面演示的是for循环。那么如果通过zip函数......
  • 用Java爬虫轻松抓取网页数据
    Java爬虫可以自动化地从互联网上采集各种数据,可以帮助企业分析竞争对手的网页排名,优化自己的网站,提高搜索引擎排名。那么如何开始爬虫呢?Java爬虫的具体步骤如下:1、确定爬取目标确定需要爬取的网站、页面和数据。2、分析网页结构通过浏览器开发者工具或者其他工具,分析目标网站......
  • java爬虫详解及简单实例
    java爬虫是一种自动化程序,可以模拟人类在互联网上的行为,从网站上抓取数据并进行处理。下面是Java爬虫的详细解释:1、爬虫的基本原理Java爬虫的基本原理是通过HTTP协议模拟浏览器发送请求,获取网页的HTML代码,然后解析HTML代码,提取需要的数据。爬虫的核心是HTTP请求和HTML解析。2......
  • java爬虫详解及简单实例
    java爬虫是一种自动化程序,可以模拟人类在互联网上的行为,从网站上抓取数据并进行处理。下面是Java爬虫的详细解释:1、爬虫的基本原理Java爬虫的基本原理是通过HTTP协议模拟浏览器发送请求,获取网页的HTML代码,然后解析HTML代码,提取需要的数据。爬虫的核心是HTTP请求和HTML解析。2、爬虫......
  • python selenium 下拉框处理
    在自动化测试中,处理下拉框(Dropdown)有以下几种方式:1.使用Select类:通过select的相关方法选择option选项select.select_by_index(index)参数index表示的option索引select.select_by_value(value)参数value表示的是option元属中value的属性值select.select_by_visible_te......
  • 腾讯用户画像——如何为QQ画像和代理IP画像
    腾讯用户画像画像,实质上就是给账号、设备等打标签。用户画像=打标签我们这里主要从安全的角度动身来打标签,比如IP画像,我们会标注IP是不是代理IP,这些对我们做战略是有辅佐的。以QQ的画像为例,比如,一个QQ只登录IM、不登录其他腾讯的业务、不聊天、频繁的加好友、被好友删除、QQ空间要......
  • python selenium框架解决ip代理框不能自动化登录,解决pyautogui开不了多线程问题
    有时候我们使用python自动化框架的时候,打开一个网页的时候,它会出现出线这一种登录框,我们f12检查不了,用开发者工具强制检查里面没有任何属性.那这时候我们就可以用到python第三方库:pyautoguiPyAutoGUI:是一个Python库,可用于自动化GUI(图形用户界面)程序的任务。它可以让Pytho......
  • 网络爬虫初级
    首先,我们来看一个Python抓取网页的库:urllib或urllib2。那么urllib与urllib2有什么区别呢?可以把urllib2当作urllib的扩增,比较明显的优势是urllib2.urlopen()可以接受Request对象作为参数,从而可以控制HTTPRequest的header部。做HTTPRequest时应当尽量使用urllib2库,但是urllib.urlre......
  • selenium教程
    一、selenium和chromedriver的安装配置1、下载seleniumpipinstallselenium2、下载chromedriverhttps://npmmirror.com/chromedriver版本和chrome版本要一致3、简单使用案例fromseleniumimportwebdriverimporttimeoptions=webdriver.ChromeOptions()#取消Ch......