前言


大佬勿喷,萌新刚入坑,没有多么正确的词汇,纯自娱自乐,爬虫没有使用scrapy,简单的使用了webdriver selenium,正则表达式,response,xpath对网页数据进行提取。 爬取知乎首先要登录知乎,不然爬取未登录的知乎网页会自动跳转到知乎登录页面,由于知乎的滑动验证未解决(原因:利用selenium模拟浏览器点击输入账号密码后,跳出的滑动验证码需要对图片进行识别处理,知识盲区)用webdriver打开浏览器,一次登录,保存cookies值,跳过了登录步骤,然后进行数据爬取。


本代码主要爬取知乎的用户信息,包括:名字,介绍,居住地,所在行业,职业经历,教育经历,个人简介,回答数,视频量,提问数,文章数,专栏,想法,收藏,个人成就等;

如图:

python爬取个人信息 利用爬虫爬取个人信息_爬虫

对知乎页面组成进行分析:

  • 在知乎首页进行开始操作,代码将提取用户事件分为三种情况;
    1、可以提取热点内容下的用户信息
    2、可以直接利用知乎中的搜索框搜索指定用户名的相关信息
    3、利用知乎的搜索框搜索问题,提取问题下用户列表的相关用户信息
  • 然后开始对指定网页的提取,将每一个网页的提取步骤写在一个函数中,多次调用即可;
  • 最后将提取的用户信息保存在excel表中
    注:也可将数据保存在数据库中,详见Python爬虫爬取数据到sqlite数据库实例只需修改保存数据的函数即可

因为代码数目过多代码地址资源已上传

不足:我是按照目标值提取数据的,但是如果数据过多,知乎的页面是需要向下滑动加载的,我参考了别人的很多方法,这里使用的是用js语句模拟滚动条向下滑动。这里有一个硬性问题有待解决:我先加入了一种判断语句,如果下滑到底端就自动停止加载,这就使得如果网络卡顿时,他会自己提前结束加载,导致获取的数据达不到目标值。