Scrapy爬虫(6)爬取银行理财产品并存入MongoDB(共12w+数据)
本次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如下:
- ROBOTSTXT_OBEY = False
- ITEM_PIPELINES = {‘bank.pipelines.BankPipeline’: 300}
- 添加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+数据)相关推荐
- Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...
- Python Scrapy爬虫框架爬取51job职位信息并保存至数据库
Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...
- Scrapy 爬虫实战-爬取字幕库
Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...
- 使用scrapy爬虫框架爬取慕课网全部课程信息
爬取的链接: http://www.imooc.com/course/list 爬取的内容: 课程链接, 课程的图片url, 课程的名称, 学习人数, 课程描述 1.安装scrapy模块 pip in ...
- 用Scrapy爬虫框架爬取食品论坛数据并存入数据库
这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...
- Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文
大宗师是著名网络小说作家蛇从革的系列作品"宜昌鬼事"之一,在天涯论坛具有超级高的访问量.这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读 ...
- scrapy爬虫之爬取百度手机助手app信息并保存至mongodb数据库(附源码)
声明: 本文内容仅供学习python爬虫的同学用作学习参考!!! 如有错误,请评论指出,非常感谢!!! 1.使用环境 python 3.8 scrapy 2.5 mongodb pycharm ...
- scrapy爬虫之爬取汽车之家奥迪Q7高清图片
文章目录 前言 一.项目准备 1.安装scrapy 2.创建scrapy项目 3.创建scrapy爬虫 4.创建结果 5.修改配置 二.项目实现 1.分析网页 2.创建Item 3.编写爬虫 4.更改 ...
- Python Scrapy 爬虫框架爬取推特信息及数据持久化!整理了我三天!
最近要做一个国内外新冠疫情的热点信息的收集系统,所以,需要爬取推特上的一些数据,然后做数据分类及情绪分析.作为一名合格的程序员,我们要有「拿来主义精神」,借助别人的轮子来实现自己的项目,而不是从头搭建 ...
最新文章
- python最大公约数和最小公倍数的求法_最大公约数和最小公倍数的求法分析
- SQL命令执行数据库备份
- umijs多环境配置_umi 项目多环境打包配置
- java单链表节点翻转_单链表Java实现
- linux 开启 自动挂载U盘 权限的设置
- 分布式部署携程Apollo构建配置中心
- LruCache在美团DSP系统中的应用演进
- 【MySQL】MySQL 界面连接工具 优化工具 监控工具 其他工具 简介
- 力扣131. 分割回文串(JavaScript)
- Swift中Class和Struct异同
- 【系统架构】缓存Memcache 使用原子性操作add,实现并发锁
- Manjaro Linux下使RIME支持86/98五笔输入法
- 星舆科技北斗高精度定位网启动北斗三号服务
- uniapp调起打印机(调起第三方打印软件)适用app,将页面生成图片打印的两种方式
- CDN - 原理解析
- 嵌入式实验 之 DMA控制器实验
- Centos6、Centos7、Centos8关闭防火墙
- Qt creator学习笔记(一)认识Qt
- webstrom怎么配置git并提交
- java的四种访问权限_Java四种访问权限