本次Scrapy爬虫的目标是爬取“融360”网站上所有银行理财产品的信息,并存入MongoDB中。网页的截图如下,全部数据共12多万条。

  我们不再过多介绍Scrapy的创建和运行,只给出相关的代码。关于Scrapy的创建和运行,有兴趣的读者可以参考:Scrapy爬虫(4)爬取豆瓣电影Top250图片。
  修改items.py,代码如下,用来储存每个理财产品的相关信息,如产品名称,发行银行等。

import scrapy

class BankItem(scrapy.Item):# define the fields for your item here like:name = scrapy.Field()bank = scrapy.Field()currency = scrapy.Field()startDate = scrapy.Field()endDate = scrapy.Field()period = scrapy.Field()proType = scrapy.Field()profit = scrapy.Field()amount = scrapy.Field()

  创建爬虫文件bankSpider.py,代码如下,用来爬取网页中理财产品的具体信息。

import scrapy
from bank.items import BankItemclass bankSpider(scrapy.Spider):name = 'bank'start_urls = ['https://www.rong360.com/licai-bank/list/p1']def parse(self, response):item = BankItem()trs = response.css('tr')[1:]for tr in trs:item['name'] = tr.xpath('td[1]/a/text()').extract_first()item['bank'] = tr.xpath('td[2]/p/text()').extract_first()item['currency'] = tr.xpath('td[3]/text()').extract_first()item['startDate'] = tr.xpath('td[4]/text()').extract_first()item['endDate'] = tr.xpath('td[5]/text()').extract_first()item['period'] = tr.xpath('td[6]/text()').extract_first()item['proType'] = tr.xpath('td[7]/text()').extract_first()item['profit'] = tr.xpath('td[8]/text()').extract_first()item['amount'] = tr.xpath('td[9]/text()').extract_first()yield itemnext_pages = response.css('a.next-page')if len(next_pages) == 1:next_page_link = next_pages.xpath('@href').extract_first() else:next_page_link = next_pages[1].xpath('@href').extract_first()if next_page_link:next_page = "https://www.rong360.com" + next_page_linkyield scrapy.Request(next_page, callback=self.parse)

  为了将爬取的数据储存到MongoDB中,我们需要修改pipelines.py文件,代码如下:

# pipelines to insert the data into mongodb
import pymongo
from scrapy.conf import settingsclass BankPipeline(object):def __init__(self):# connect databaseself.client = pymongo.MongoClient(host=settings['MONGO_HOST'], port=settings['MONGO_PORT'])# using name and password to login mongodb# self.client.admin.authenticate(settings['MINGO_USER'], settings['MONGO_PSW'])# handle of the database and collection of mongodbself.db = self.client[settings['MONGO_DB']]self.coll = self.db[settings['MONGO_COLL']] def process_item(self, item, spider):postItem = dict(item)self.coll.insert(postItem)return item

其中的MongoDB的相关参数,如MONGO_HOST, MONGO_PORT在settings.py中设置。修改settings.py如下:

  1. ROBOTSTXT_OBEY = False
  2. ITEM_PIPELINES = {‘bank.pipelines.BankPipeline’: 300}
  3. 添加MongoDB连接参数
MONGO_HOST = "localhost"  # 主机IP
MONGO_PORT = 27017  # 端口号
MONGO_DB = "Spider"  # 库名
MONGO_COLL = "bank"  # collection名
# MONGO_USER = ""
# MONGO_PSW = ""

其中用户名和密码可以根据需要添加。

  接下来,我们就可以运行爬虫了。运行结果如下:

共用时3小时,爬了12多万条数据,效率之高令人惊叹!
  最后我们再来看一眼MongoDB中的数据:

  Perfect!本次分享到此结束,欢迎大家交流~~

Scrapy爬虫(6)爬取银行理财产品并存入MongoDB(共12w+数据)相关推荐

  1. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  2. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  3. Scrapy 爬虫实战-爬取字幕库

    Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...

  4. 使用scrapy爬虫框架爬取慕课网全部课程信息

    爬取的链接: http://www.imooc.com/course/list 爬取的内容: 课程链接, 课程的图片url, 课程的名称, 学习人数, 课程描述 1.安装scrapy模块 pip in ...

  5. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库

    这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...

  6. Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文

    大宗师是著名网络小说作家蛇从革的系列作品"宜昌鬼事"之一,在天涯论坛具有超级高的访问量.这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读 ...

  7. scrapy爬虫之爬取百度手机助手app信息并保存至mongodb数据库(附源码)

    声明: ​ 本文内容仅供学习python爬虫的同学用作学习参考!!! ​ 如有错误,请评论指出,非常感谢!!! 1.使用环境 python 3.8 scrapy 2.5 mongodb pycharm ...

  8. scrapy爬虫之爬取汽车之家奥迪Q7高清图片

    文章目录 前言 一.项目准备 1.安装scrapy 2.创建scrapy项目 3.创建scrapy爬虫 4.创建结果 5.修改配置 二.项目实现 1.分析网页 2.创建Item 3.编写爬虫 4.更改 ...

  9. Python Scrapy 爬虫框架爬取推特信息及数据持久化!整理了我三天!

    最近要做一个国内外新冠疫情的热点信息的收集系统,所以,需要爬取推特上的一些数据,然后做数据分类及情绪分析.作为一名合格的程序员,我们要有「拿来主义精神」,借助别人的轮子来实现自己的项目,而不是从头搭建 ...

最新文章

  1. python最大公约数和最小公倍数的求法_最大公约数和最小公倍数的求法分析
  2. SQL命令执行数据库备份
  3. umijs多环境配置_umi 项目多环境打包配置
  4. java单链表节点翻转_单链表Java实现
  5. linux 开启 自动挂载U盘 权限的设置
  6. 分布式部署携程Apollo构建配置中心
  7. LruCache在美团DSP系统中的应用演进
  8. 【MySQL】MySQL 界面连接工具 优化工具 监控工具 其他工具 简介
  9. 力扣131. 分割回文串(JavaScript)
  10. Swift中Class和Struct异同
  11. 【系统架构】缓存Memcache 使用原子性操作add,实现并发锁
  12. Manjaro Linux下使RIME支持86/98五笔输入法
  13. 星舆科技北斗高精度定位网启动北斗三号服务
  14. uniapp调起打印机(调起第三方打印软件)适用app,将页面生成图片打印的两种方式
  15. CDN - 原理解析
  16. 嵌入式实验 之 DMA控制器实验
  17. Centos6、Centos7、Centos8关闭防火墙
  18. Qt creator学习笔记(一)认识Qt
  19. webstrom怎么配置git并提交
  20. java的四种访问权限_Java四种访问权限

热门文章

  1. Macbook air 键盘标点符号怎么输出?
  2. Jsp(Java Server Pages)简介
  3. java: http请求和响应
  4. csdn将文章添加到专栏
  5. Android笔记:Eclipse中SVN插件的两种安装方式
  6. 用__builtin_return_address获得程序运行栈情况【转】
  7. css03层次选择器
  8. Mybatis返回Mysql表的自增主键
  9. Winsock编程原理——面向连接
  10. Mysql的实用语法