利用Scrapy爬取知乎用户详细信息并存至MongoDB(学习笔记)(1)
来源:互联网 发布:mac保存gif图 编辑:程序博客网 时间:2024/06/07 12:57
相关:静觅 » 利用Scrapy爬取知乎用户详细信息并存至MongoDB
一、准备工作
1> 框架安装
- Scrapy爬虫框架
pip install scrapy
PyMongo:python的MongoDB连接库
pip install pymongo
- MongoDB
2> 创建
- 创建项目
在目标路径下启动管理员命令提示符scrapy startproject zhihuuser
- 创建爬虫
cd zhihuuser ##因为需要在项目里创建scrapy genspider zhihu www.zhihu.com
- 禁止ROBOTSTXT_OBEY
settings.py
ROBOTSTXT_OBEY = False
注:
robots.txt是遵循Robot协议的一个文件,保存在网站的服务器中。
作用:阻止搜索引擎爬虫爬取网站目录下不希望爬取的网页内容。
Scrapy在启动后会在首先访问网站的robots.txt文件,决定该网站的爬取范围。
当想要获取被robots.txt所禁止访问的的内容时。可以把此配置项设置为False,选择不遵守Robot协议。
二、爬取测试
- 运行:
scrapy crawl zhihu
如果运行结果出现:500 Internet Server Error
说明没有爬取成功,需要添加headers信息,加入User-Agent伪装成浏览器 - headers可以在settings.py里修改,或在Request或spdier->custom_settings添加
settings.py取消DEFAULT_REQUEST_HEADERS的注释#添加DEFAULT_REQUEST_HEADERS = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
- 重新运行测试
三、爬取流程
查看待爬取的网页源代码answers开头的Ajax请求。
====================================================================================================================================可知:这是一个GET类型的请求。Request URL中有三个参数
- include:查询参数,获取关注的人的基本信息,包括回答数、文章数量等。
- offset:偏移量,如图这是第四页的列表内容,当前offset为45.
- limit:可以理解为每一页的关注/回答的内容数量,当前为15
综上,当offset为0时,当前页面为第一页,当offset为15,以此类推...Preview标签下:可知data和paging两个字段。data:包含15个内容,包括用户的基本信息。paging:is_end:判断当前页面翻页是否结束。next/previous:下/上一页的链接。在进行翻页操作时,先通过is_end判断,再是否跳转到目标的URL。当源代码光标指向其中一个关注用户时:出现一个新的请求,点击查看:Rquest URL:https://www.zhihu.com/api/v4/members/rebornix
与上面的区别就是后面多了一个用户名。用户名 = url_token
总结:
- 要获取用户的关注列表,需要请求类似 https://www.zhihu.com/api/v4/members/{user}/followees?include={include}&offset={offset}&limit={limit} 这样的接口,其中user就是该用户的url_token,include是固定的查询参数,offset是分页偏移量,limit是一页取多少个。
- 要获取用户的详细信息,需要请求类似 https://www.zhihu.com/api/v4/members/{user}?include={include} 这样的接口,其中user就是该用户的url_token,include是查询参数。
0 0
- 利用Scrapy爬取知乎用户详细信息并存至MongoDB(学习笔记)(1)
- 利用Scrapy爬取知乎用户详细信息并存至MongoDB
- 利用Scrapy爬取所有知乎用户详细信息并存至MongoDB
- 利用Scrapy爬取所有知乎用户详细信息并存至MongoDB
- Scrapy学习笔记(1)初探Scrapy
- scrapy文档学习笔记(scrapy tutorial)
- Scrapy学习笔记(0)---Scrapy一瞥
- Scrapy学习笔记(二)
- Scrapy学习笔记(三)
- 抓取网络json数据并存入mongodb(1)
- scrapy框架爬取知乎110w用户信息,并存入mysql数据库和mongoDB数据库
- MongoDB 学习笔记(六):备份与用户管理
- scrapy学习(1)
- MongoDB学习笔记(1)
- MongoDB学习笔记(1)
- MongoDB学习笔记(1)
- Scrapy学习笔记(1)
- Scrapy学习笔记(3)爬取知乎首页问题及答案
- @ font-face介绍
- vim折叠设置(转载)
- Activiti整合数据库简介
- Tomcat修改service.xml性能调优 增加最大并发连接数
- 仿淘宝— 商品图片切换
- 利用Scrapy爬取知乎用户详细信息并存至MongoDB(学习笔记)(1)
- 解读tcc-transaction 分布式事务项目
- 腾讯小白结业作业-博客页面
- 得到spring容器
- tensorflow-模型保存和加载(二)
- 第一篇文章:WebSocket的概念和实战(JAVA版)
- QT里使用sqlite的问题,好多坑
- gulp自动化打包(上)
- Android百度地图加载只显示网格