知乎爬虫:爬取知乎某一问题下的所有回答(回答数小于800左右)
-
将question id 进行遍历,存入文件,对问题进行过滤后爬取需要的回答
-
目前项目爬取的机制是将滚动条拉取到页面底端,然后一次性抓取所有的回答元素,但由于目前知乎的缓冲加载机制,当回答数量过多时(大概800左右),前面的回答信息就抓取不到了;
- 拟解决思路:边滚动边抓取(但不方便进行元素定位以避免重复抓取)
│ config.py # 爬取链接及存储路径设置
│ README.md
│ requirements.txt
│ scanner.py # 获取有效的问题网址
| filter_links.py # 按照一定规则筛选问题
│ ZhihuSpider.py # 知乎爬虫主程序
│
├─Driver
│ chromedriver.exe # Chrome驱动
│ geckodriver.exe # gecko驱动
│
└─Results
result-2022-07-28-深度神经网络DNN是否模拟了人类大脑皮层结构.csv # 抓取结果样例
Python 3.7+
pip install -r requirements.txt
其中mac版本驱动适用于109版本chrome,其他版本请自行下载对应chrome
- 运行scanner.py获取有效的问题id网址,具体的问题以及回答数方便过滤,写入文件
- 运行filter_links.py按照一定规律筛选问题,并写入文件zhihu_valid_links.txt
- 下载对应浏览器的驱动并置于Driver文件夹==> 运行ZhihuSpider.py,结果写入zhihu_result.csv
question_title | answer_url | author_name | fans_count | created_time | updated_time | comment_count | voteup_count | content |
---|---|---|---|---|---|---|---|---|
问题名称 | 回答链接 | 作者昵称 | 粉丝数量 | 回答时间 | 最近修改时间 | 评论数量 | 赞同数量 | 回答文本内容 |