【背景】
前段时间,阅读知乎上一些用户写的文章的时候觉得阅读起来比较麻烦,不符合我的阅读感受。比如下边这个,我想阅读牛客网的文章(如图1所示),我会通过标题先进行筛选,但是这样滚动下滑太麻烦了,所以想着不如将标题信息爬下来,另外,点赞数和评论数也顺便抓取下来,这样还能看该用户被点赞数最多的文章是哪一篇。说干就干!图1 知乎用户牛客网的文章
【思路】
利用selenium抓取知乎用户的文章页面源码,接着用pyquery库来解析文章相关信息,并将其保存到MongoDB数据库中,通过MongoDB Compass这个可视化工具可以可视化的操作数据库,还可以进行数据的导入导出。
【涉及知识点】基本库的使用
selenium库、pyquery库、pymongo库的使用
CSS selector的使用
正则表达式
【预装库及软件】首先确保自己的电脑安装了MongoDB数据库。
MongoDB Compass软件自己视情况而定,如果常用命令行操作数据库的话,这个可以不安装,对我们的数据抓取没有影响。
确保你的Python3环境中有下边几个库,pymongo、selenium和pyquery要自己安装,可以直接用pip进行安装。
import re
import time
import pymongo
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium