爬虫数据存入数据库_爬虫怎么将数据存到另一台电脑的数据库-程序员宅基地

技术标签: 爬虫  

将爬虫获取的数据存入数据库,需要在pipeline里完成。

一、默认的项目是将pipeline的功能关闭了,这里我们先在settings.py中打开。其中设置里可以增加多个操作,后面的数字代表操作的先后顺序。

ITEM_PIPELINES = {
   'qidian_hot.pipelines.QidianHotPipeline': 300,
}

二、首先打开SQLyog,新建一张表。并在 settings.py 里写入有关数据库的信息:

MYSQL_DB_NAME = "qidian"
MYSQL_HOST = "localhost"
MYSQL_USER = "root"
MYSQL_PASSWPRD = "971021"

三、在 pipelines.py 里写连接数据库的类

首先,导入一个包:

import MySQLdb

连接数据库:

spider.settings.get 后的第一个词是获取 setting 里写入的,如果查不到第一个字符串,就用第二个字符串赋值。

    def open_spider(self,spider):
        db_name = spider.settings.get("MYSQL_DB_NAME","qidian")
        host = spider.settings.get("MYSQL_HOST", "localhost")
        user = spider.settings.get("MYSQL_USER", "root")
        pwd = spider.settings.get("MYSQL_PASSWPRD", "971021")
        self.db_conn = MySQLdb.connect(db = db_name,
                                       host = host,
                                       user = user,
                                       password = pwd,
                                       charset = "utf8")
        self.db_cursor = self.db_conn.cursor() #得到游标

使用SQL语句将数据写入数据库:

    def process_item(self, item, spider):
        values = (item["name"],item["author"],item["type"],item["state"])
        sql = "insert into hot(name,author,type,state) values (%s,%s,%s,%s)"
        self.db_cursor.execute(sql,values)
        return item

收尾工作:

这里的 commit 可以放在前面,也可以在收尾工作里一步提交:

    def close_spider(self,spider):
        self.db_conn.commit()
        self.db_cursor.close()
        self.db_conn.close()

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aspirinLi/article/details/110563200

智能推荐

Stata数据处理:面板数据的填充和补漏_stata如何填充年份-程序员宅基地

文章浏览阅读7.2k次,点赞3次,收藏16次。原文链接:https://www.lianxh.cn/news/c2febe0f3530a.html问题描述我有一份面板数据,有些年份上的数据有两行或多行记录 (例如,本例中 2007 年的数据)。棘手的是,这两行数据存在差异,且无法判断哪一个记录是正确的。此时,比较稳妥的选择是:将这两汉数据都舍弃,使用相邻年度 (2006 和 2008 年) 的均值作为 2007 年的观察值 (插值)。 解决方法1: 使用 tssmooth ma 命令思路:先删除重复的观察值 (2007 年_stata如何填充年份

QCY T1s 双耳配对教程_t1s左右不配对-程序员宅基地

文章浏览阅读4.2k次。手机蓝牙中删除配对记录;将两只耳机放入充电仓后,再取出,然后同时长按3秒到红灯,松手;同时长按20秒(白灯—>红白交替—>灭灯—>红白交替),松手;同时长按耳机1秒开机,松手;等待L灭灯,R红白交替;手机蓝牙连接R原文:https://www.jianshu.com/p/49661ca4d06f..._t1s左右不配对

WPF画红色波浪线_wpf brush 波浪线-程序员宅基地

文章浏览阅读2.4k次。终于能画出一条线了记下来:XAML代码:

永磁同步电机(PMSM)矢量控制,坐标变换到d-q轴后,采用SVPWM调制算法,进行速度电流双闭环控制_q轴电流与svpwm-程序员宅基地

文章浏览阅读301次。永磁同步电机(PMSM)矢量控制,坐标变换到d-q轴后,采用SVPWM调制算法,进行速度电流双闭环控制,控制算法为PID,仿真结果如图所示。_q轴电流与svpwm

根据对象中某一属性进行升序降序排序的javascript实现_js 数组按照某个属性值升序和降序-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏6次。背景知识: sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。 语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。 注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以_js 数组按照某个属性值升序和降序

zabbix快速搭建lamp-程序员宅基地

文章浏览阅读182次。监控三剑客:cacti nagios zabbix热门监控 prometheus 适合云端监控rrdtool 回环数据库报警首先查看php版本yum list php 各种版本一定要一致php 5.4.16-42mariadb-serverphp-mysqlscp php-bcmath-5.4.16-42.el7.x86_64.rpm php-mb..._zabbix快速搭建

随便推点

POM的语法规则_pom.xml语法-程序员宅基地

文章浏览阅读2.1k次。一、POM简介pom作为项目对象模型,通过使用pom.xml来实现管理maven项目,主要描述了项目的如下部分:配置文件、开发者需要遵循的规则、缺陷管理系统、组织和licenses、项目的url、项目的依赖性和其它所有的项目相关因素。二、POM的语法规则一份比较全的pom.xml文件可以参考如下,通过它我们来对pom.xml中的语法规则进行说明。<project> <..._pom.xml语法

查看kafka消费组及消费者ip命令_kafka查看消费者ip-程序员宅基地

文章浏览阅读9.8k次,点赞2次,收藏6次。查看消费组./kafka-consumer-groups.sh --bootstrap-server ip:port--list//查看组中消费者状态./kafka-consuemr-groups.sh --bootstrap-server ip:port--group 消费组名称--describe_kafka查看消费者ip

java使用zpl指令在Zebra打印机上打印条形码-程序员宅基地

文章浏览阅读1.8k次。参考文章:https://blog.csdn.net/scholar_man/article/details/78784163打印机使用的是斑马打印机条码样式工具类ZplPrinterimport org.springframework.context.EnvironmentAware;import org.springframework.context.annotation.Configuration;import org.springframework.core.env.Environme

RGB/HSV/YUV颜色空间模型总结-程序员宅基地

文章浏览阅读2k次。RGB颜色空间 计算机色彩显示器显示色彩的原理与彩色电视机一样,都是采用R、G、B相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩的。这种色彩的表示方法称为RGB色彩空间表示。在多媒体计算机技术中,用的最多的是RGB色彩空间表示。 根据三基色原理,用基色光单位来表示光的量,则在RGB色彩空间,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r [ R ] + g [ G ] + b

HDU2064-程序员宅基地

文章浏览阅读400次。第一个代码与第二个代码同样能过 大概意思也一样只是思路不一样第一个思路为f(n) = 3*f(n-1) + 2第二道题为3*a-1可以自己思考一下这个过程_hdu2064

openssl动态库生成以及交叉编译_linux openssl 源码生成动态库 lib lib64-程序员宅基地

文章浏览阅读2.9k次。from http://blog.csdn.net/andylauren/article/details/53456340虚拟机环境ubuntu12.04开发板EasyARM-i.MX280A: 64m sdram 128M nandflash 运行官方提供的Linux-2.6.35.3内核linux首先说一下如何在主机上进行编译,并生成动态库_linux openssl 源码生成动态库 lib lib64