Giter Site home page Giter Site logo

hhr346 / qq_zone_crawl Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 6.82 MB

Use the selenium and bs4 to crawl the text contents in someone's qq zone. Simulate the action of user's. 模仿用户行为通过Selenium对qq空间的文本内容进行爬取

License: Other

Python 100.00%

qq_zone_crawl's Introduction

QQ空间爬虫

该程序的主要实现过程是进入某位好友的空间中,并自动爬取说说的文本内容并存储到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_zone_crawl's People

Contributors

hhr346 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.