当前位置: 首页 > news >正文

scrapy爬取豆瓣书单存入MongoDB数据库

scrapy爬取豆瓣书单存入MongoDB数据库

  • 一、安装scrapy库
  • 二、创建scrapy项目
  • 三、创建爬虫
  • 四、修改settings,设置UA,开启管道
  • 五、使用xpath解析数据
  • 六、完善items.py
  • 七、在douban.py中导入DoubanshudanItem类
  • 八、爬取所有页面数据
  • 九、管道中存入数据,保存至csv文件
  • 十、将数据写入MongoDB数据库
  • 十一、完整代码:

一、安装scrapy库

爬取的目标url是https://www.douban.com/doulist/45298673/,完整代码放在最后,使用命令pip install scrapy安装scrapy库。

二、创建scrapy项目

使用命令scrapy startproject doubanshudan来创建scrapy项目,再通过命令cd doubanshudan进入项目目录。

三、创建爬虫

使用命令scrapy genspider douban douban.com创建名为douban的爬虫,起始域名是douban.com。

四、修改settings,设置UA,开启管道

打开settings.py,将ROBOTSTXT_OBEY改为False,LOG_LEVEL设置为ERROR,将User-Agent改为自己的User-Agen,如下图所示:
在这里插入图片描述
在settings.py文件中取消管道代码的注释,如下图所示:
在这里插入图片描述

相关文章:

  • 算法:位运算题目练习
  • 图像分隔和深度成像技术为什么受市场欢迎-数字孪生技术和物联网智能汽车技术的大爆发?分析一下图像技术的前生后世
  • C#(C Sharp)学习笔记_封装【十八】
  • ORDER BY FIELD
  • JS:获取鼠标点击位置
  • Kotlin 语言基础学习
  • 一血c++
  • Cheat Engine 学习
  • GTK tutorial 十三
  • Java 网站开发入门指南:如何用java写一个网站
  • 【面经总结】Java集合 - Map
  • JVM-GC-什么是垃圾
  • 【Python】数据处理:NumPy
  • ELasticSearch数据迁移方案-elasticdump
  • 算法排序之冒泡排序及优化
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • const let
  • Docker入门(二) - Dockerfile
  • Docker下部署自己的LNMP工作环境
  • ES6 学习笔记(一)let,const和解构赋值
  • gf框架之分页模块(五) - 自定义分页
  • IP路由与转发
  • QQ浏览器x5内核的兼容性问题
  • Redux系列x:源码分析
  • RxJS: 简单入门
  • Spring核心 Bean的高级装配
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 老板让我十分钟上手nx-admin
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 如何设计一个微型分布式架构?
  • 如何在GitHub上创建个人博客
  • 三栏布局总结
  • 深入浏览器事件循环的本质
  • 使用putty远程连接linux
  • 写代码的正确姿势
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​学习一下,什么是预包装食品?​
  • #微信小程序:微信小程序常见的配置传旨
  • (70min)字节暑假实习二面(已挂)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (七)Knockout 创建自定义绑定
  • (七)理解angular中的module和injector,即依赖注入
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (生成器)yield与(迭代器)generator
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)VC++中ondraw在什么时候调用的
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数