开发前环境配置:

Pycharm开发工具下载:

链接:https://pan.baidu.com/s/1LaRfZspqzYXsm5XjbsSXwQ
提取码:5210

插件下载:DatabaseTools

链接:https://pan.baidu.com/s/13csVBHGVm0uMKsnhURWVuA
提取码:5210

mongo Plugin

链接:https://pan.baidu.com/s/19QyBfKVIA5aRluCY2XNFrQ
提取码:5210

Python下载:

链接:https://pan.baidu.com/s/1CwVEs-UfdNbFpobnx9vM8w
提取码:5210

64位系统的安装这个!!!

  MongoDB下载:

链接:https://pan.baidu.com/s/1N1TrhoRDgqTmgQlrY6CUXg
提取码:5210

1. 在根目录中创建mongo.conf文件:复制以下内容

dbpath=E:\mongodb\data #数据库路径 (自己创建的路径!!!)
logpath=E:\mongodb\logs\mongo.log #日志输出文件路径   (自己创建的路径!!!)
logappend=true #错误日志采用追加模式
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017  

2.将mongodb命令加入到环境变量中:

# F:\SoftWares\mongodb-3.4.21\bin
右键计算机 => 属性 => 高级系统设置 => 环境变量 => 系统变量中path尾部添加

3.依次运行一下命令:(管理员权限打开CMD!!!)

# 此时浏览器访问:  127.0.0.1:27017 出现下面内容,证明成功!!!
# It looks like you are trying to access MongoDB over HTTP on the native driver port.
mongod --config "F:\SoftWares\mongodb-3.4.21\mongo.conf"  
# 将MongoDB服务添加到电脑系统中:(service.msc 命令可打开服务找到对应的名字)
mongod --config "F:\SoftWares\mongodb-3.4.21\mongo.conf" --install --serviceName "mongodb"  # mongodb为添加的服务名字
# 接着就是服务的开启和停止:开启后即可连接该数据库,亦可通过127.0.0.1:27017访问页面
net start mongodb  # 开启mongodb服务
net stop mongodb   # 停止mongodb服务

4. mongodb配置完成~~~

MongoDB可视化工具下载:

链接:https://pan.baidu.com/s/1DsVtd2_ivsqwLViJ_if_aQ
提取码:5210

爬取的数据可以通过该博客开发接口: node接口和mongodb搭配写接口

正式开发爬虫文件: python文档

1.安装插件python mongodb驱动,scrapy爬虫插件

pip install scrapy
pip install pymongo

2.创建蜘蛛项目

scrapy startproject ExportIntoMongodb

特别福利:项目创建完毕,进入项目根目录.直接命令创建爬虫文件!!!

scrapy genspider -h  查看命令
scrapy genspider -l   查看模板名列表
scrapy genspider -t basic taobaoSpider taobao.com 采用参数的形式来生成指定模板
scrapy genspider taobaoSpider tabobao.com 创建基础爬虫模板# 直接创建基础爬虫文件,省去创建文件的操作以及内容结构的编写!!!
# scrapy genspider taobaoSpider [要爬取的url]  [-t 模板名称]
# 模板名称 : basic/crawl/csvfeed/xmlfeed
# 爬取的路径,域名即可 [tabobao.com|baidu.com|lab.scrapyd.cn|examole.basic.cn]
scrapy genspider taobaoSpider tabobao.com 创建基础爬虫模板

3.自定义要爬取的字段:items.py

import scrapyclass ExportintomongodbItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()tag = scrapy.Field()  # 标签content = scrapy.Field()  # 名言内容author = scrapy.Field()  # 作者pass

4. 编写pipeline.py

import pymongo  # 链接mongodbd插件class ExportintomongodbPipeline:# 初始函数def __init__(self):# 链接数据库client = pymongo.MongoClient('127.0.0.1', 27017)  # 创建链接# 连接所需数据库名db = client['MingYanSpider']# 连接对应的库表self.post = db['mingyan']def process_item(self, item, spider):postItem = dict(item)  # 转化为字典形式self.post.insert(postItem)  # 向表中插入一条数据return item  # 可以输出到控制台,可以不写

5. 设置相关属性值settings.py

ITEM_PIPELINES = {'exportIntoMongodb.pipelines.ExportintomongodbPipeline': 300,
}

6.爬虫核心代码:exportInto.py

# -*- coding: utf-8 -*-
import scrapy  # 导入核心from exportIntoMongodb.items import ExportintomongodbItem  # 导入要查询的参数class Intomongodbspider(scrapy.Spider):name = 'Intomongodbspider'  # 爬虫名字allowed_domains = ["lab.scrapyd.cn"]start_urls = ['http://lab.scrapyd.cn/']'''定义函数:取到需要的文字'''def parse(self, response, **kwargs):sayings = response.css('div.quote')  # 取到整页的名言盒子item = ExportintomongodbItem()  # 实例化Item类# 提取名言for v in sayings:item['content'] = v.css('.text::text').extract_first()  # 提取名言内容item['author'] = v.css('.quote.post span small::text').extract_first()  # 提取名言内容tag = v.css('.tags .tag::text').extract()  # 提取到标签数组item['tag'] = ','.join(tag) if len(tag) > 0 else '暂无标签'  # 标签# 弹出该item对象 把取到的内容提交到pipline处理yield item# css选择器提取下一页链接next_page = response.css('li.next a::attr(href)').extract_first()  # 提取到下一页链接if next_page is not None:next_page = response.urljoin(next_page)yield scrapy.Request(next_page, callback=self.parse)

7.运行爬虫爬取数据

scrapy crawl Intomongodbspider

福利代码:利用标签参数来查询导入到数据库

上面的代码除了核心代码要改动外,其他的不需要改动,直接复制~

接着就是将上面的6和7改成下面的6和7即可!!!

6. 爬虫核心代码:exportInto.py

# -*- coding: utf-8 -*-
import scrapy  # 导入爬虫核心库
from exportIntoMongodb.items import ExportintomongodbItem  # 导入自定义参数字段
class TagInfoMongoDB(scrapy.Spider):name = 'TagIntomongodbspider'  # 爬虫名# 定义搜索入参的函数def start_requests(self):start_urls = 'http://lab.scrapyd.cn/'tag = getattr(self, 'tag', None)  # 加入参数搜索if tag is not None:print('13', start_urls + 'tag/' + tag)yield scrapy.Request(start_urls + 'tag/' + tag, callback=self.parse)def parse(self, response, **kwargs):lists = response.css('div.quote')  # 获取到当前页的包裹名言字段的盒子集合# listsLen = range(len(lists))  # 获取到该集合的范围(0[,10])item = ExportintomongodbItem()  # 实例化Item类for v in lists:item['content'] = v.css('.text::text').extract_first()  # 获取到名言的内容item['author'] = v.css('.quote.post span small::text').extract_first()  # 获取到作者的名字tags = v.css('.tags .tag::text').extract()  # 获取到标签数组item['tag'] = ','.join(tags) if len(tags) > 0 else '暂无标签'yield item# css选择器提取下一页链接next_page = response.css('li.next a::attr(href)').extract_first()  # 提取到下一页链接if next_page is not None:next_page = response.urljoin(next_page)yield scrapy.Request(next_page, callback=self.parse)

7.运行爬虫爬取数据

scrapy crawl Intomongodbspider -a tag=爱情|哲学|泰戈尔  # 选其一作为查询条件

8.结束爬虫简单项目的开发!!!!!!!!!!!!!!!!!!!!!!!!


这里我试了下,对应的开发url可能访问不了了,但是代码逻辑不变。参考写法即可!

Python------python爬虫数据导入MongoDB数据库相关推荐

  1. [049量化交易]python同花顺下载数据写入MongoDB数据库

    import requests # 导入requests包 from bs4 import BeautifulSoup from urllib import request import re imp ...

  2. python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案

    [问题描述]:python将EXCEL数据导入数据库时日期变成文本型数据并显示为数字格式 [解决方案] 数据源: codes: #!/usr/bin/python3 -- coding: utf-8 ...

  3. python接入excel_使用python将excel数据导入数据库过程详解

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  4. 使用python将excel数据导入数据库

    https://www.cnblogs.com/longbigbeard/p/9309180.html 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 py ...

  5. python将excel数据导入ppt_使用python将excel数据导入数据库

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  6. mysql数据库导入到excel表格数据_[转载]将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  7. 将DataTable中的数据导入到数据库中

    上次在根据excel的文件的路径提取其中表的数据到DataSet中 一文中介绍了将Excel文件中的数据读取到DataSet中的方法,今天我来介绍下我曾经在项目中用到的一个将DataTable中的数据 ...

  8. php中怎么连接数据库中的表,php 连接 excel表格数据库数据-php中如何将execl的数据导入到数据库中...

    php中如何将execl的数据导入到数据库中 php导出大量数据的Excel: PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题 Excel可以支持100万行记录,Ex ...

  9. sqlbulkcopy mysql_c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中

    今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...

最新文章

  1. apache-shiro杂记(三) 用了apache-shiro后,HttpSession.getServletContext() API无法正常工作了...
  2. 网上找到一个用不同颜色显示表格奇偶行的例子
  3. Coolite Toolkit入门指南
  4. 大飞鸽传书!小飞鸽传书!
  5. python效率低为什么_为什么 Python 这么慢?
  6. 10-11-010-简介-架构-架构简介
  7. TrueCommand是什么
  8. 设置mysql允许外网访问
  9. 不小心执行了rm -f,除了跑路,如何恢复?
  10. python 条件语句且_python 条件语句
  11. 转发 微博 Qzone 微信 草根创业英雄时代落幕:贾跃亭戴威们一去不复返
  12. git reset --hard HEAD~X误删恢复操作
  13. Microsoft Word 教程「6」,如何在 Word 中插入艺术字?
  14. HANA 01 HANA中的JOIN和NODE
  15. 手工玫瑰花_立体折纸玫瑰花的手工玫瑰花折纸大全教程
  16. Ubuntu发布移动版操作系统
  17. 轻武宽带认证计费系统白皮书2019
  18. 使用 Python 和 Cheetah 构建和扩充模板
  19. 京东/淘宝的手机销售榜(前4名 -- 手机品牌 --手机型号*3 --手机分辨率 -- 手机操作系统 --安卓版本号)(android / IOS)
  20. 微信小程序实现摇筛子效果

热门文章

  1. 数据库连接的五种方式讲解
  2. 【五】、Consul注册中心
  3. Auto.js Pro 微博APP唤醒+刷机自动化案例
  4. 【M365运维】- 设定会议室预订的消息推送
  5. 几率大的杂乱+操作系统面试题(含答案)
  6. 阿里巴巴笔试题2020
  7. LDD6410 开发板完全开发手册1——LDD6410硬软件特性
  8. Linux 文件共享(两种方法)
  9. 总结ASP.NET MVC Web Application中将数据显示到View中的几种方式
  10. JAVA 石头剪刀布简单实现