mongodb.py
: 数据库接口,包含了MongoAPI
类,负责建立与本地数据库的连接并实现基础操作。stealth.min.js
: 一个 javascript 文件,用来抹掉 selenium 中的自动化特征。
爬取逻辑
a. 爬取帖子信息
- 设定爬取的帖子页数
page
后,爬虫将会爬取第一页到第page
页的所有帖子信息,包括标题、评论个数、浏览量、发帖时间和帖子对应的跳转链接(非股吧帖子的链接将会被剔除),以post_XXXXXX
为名保存到本地名为post_info
的数据库中(后续爬取对应股票的评论信息需要用到这一步的数据)。 - 注意保存的时间为发帖时间,而非更新时间。而如何确立发帖时间年份的函数集成在了
PostParser
类(不是通过访问帖子跳转链接获取),其中还有一些特殊情况的处理,不在此赘述。 - 当爬取帖子到 660 页左右时,一般会被限制访问,此时程序会自动退出
webdriver
并重新实例一个继续爬取。(ps: 暂时只知道这个解决方法,试过清理 cookies 和更改 user-agent,并不管用orz)
b. 爬取评论信息
- 爬取评论信息一定要等帖子信息爬取完之后才可以进行,因为要用到帖子对应的跳转链接,和该帖子是否有评论的信息(没有评论