pyspider的mysql数据存储接口

原创 2015年03月12日 15:19:14
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2015-03-12
'''
pyspider结果保存到数据库简单样例。
使用方法:
    1, 把本文件放到pyspider/pyspider/database/mysql/目录下命名为mysqldb.py;
    2, 建立相应的表和库;
    3, 在脚本文件里使用from pyspider.database.mysql.mysqldb import ToMysql引用本代码;
    4, 重写on_result方法.
'''
from six import itervalues
import MySQLdb

class ToMysql():
	
	def __init__(self,kwargs):
		'''
		kwargs = {  'host':'localhost',
					'user':'root',
					'passwd':'root',
					'db':'others',
					'charset':'utf8'}
		'''
		hosts    = kwargs['host']	
		username = kwargs['user']
		password = kwargs['passwd']
		database = kwargs['db']
		charsets = kwargs['charset']
		
		self.connection = False
		try:
			self.conn = MySQLdb.connect(host = hosts,user = username,passwd = password,db = database,charset = charsets)
			self.cursor = self.conn.cursor()
			self.cursor.execute("set names "+charsets)
			self.connection = True
		except Exception,e:
			print "Cannot Connect To Mysql!/n",e
			
	def escape(self,string):
		return '%s' % string
		
	def into(self,tablename=None,**values):
		
		if self.connection:	
			tablename = self.escape(tablename)	
			if values:
				_keys = ",".join(self.escape(k) for k in values)
				_values = ",".join(['%s',]*len(values))
				sql_query = "insert into %s (%s) values (%s)" % (tablename,_keys,_values)
			else:
				sql_query = "replace into %s default values" % tablename
			try:
				if values:
					self.cursor.execute(sql_query,list(itervalues(values)))
				else:		
					self.cursor.execute(sql_query)
				self.conn.commit()
				return True
			except Exception,e:
				print "An Error Occured: ",e
				return False
			

Pyspider实例之抓取数据并保存到MySQL数据库

本次主要是在Pyspider实例之抓取小米众筹产品的基础上修改的, 本来想直接在之前那篇文章修改的,但是感觉有点长了,所以决定另外写一篇。 闲话少说,直接进入正题: 1、在Pyspider的脚本...
  • qq_26718271
  • qq_26718271
  • 2017-07-14 16:30:10
  • 3916

自建pyspider中的mysql语句

自建pyspider中的mysql语句
  • batmancn
  • batmancn
  • 2016-01-24 16:03:15
  • 982

pyspider爬虫的一个应用

1.为了能够将爬取到的数据存入本地数据库,现在本地创建一个mysql数据库example,然后 在数据库中建立一张表格test,示例如下:DROP TABLE IF EXISTS `test`; C...
  • King_BingGe
  • King_BingGe
  • 2015-03-27 09:38:28
  • 6507

使用pyspider框架写爬虫二

总结一下前几天使用python的pyspider框架爬美食的过程事前准备 : python的pysipder框架.爬取思路 : 在pyspider创建一个项目 点create后进入到pysp...
  • yangs_1235
  • yangs_1235
  • 2016-08-11 15:31:34
  • 1592

pyspider 使用过程中遇到的一些坑

1. 前言最近在玩爬虫, 使用最基本的urllib库来爬取静态网页的方法, 我们基本已经掌握了, 于是觉得应该整个框架玩玩, 于是看到了pyspider, 这是一个国内的大神写的一个框架, 非常好用,...
  • zhyh1435589631
  • zhyh1435589631
  • 2016-05-22 11:39:20
  • 9005

pyspider抓取数据信息

pyspider框架,mysql
  • shaoyingchendsg
  • shaoyingchendsg
  • 2017-09-08 17:34:50
  • 217

Pyspider学习

简介国人编写的强大的网络爬虫系统并自带强大的WebUI,采用Python语言编写吗,分布式架构。支持多种数据库后端 pyspider中文网站:http://www.pyspider.cn/ 源码网...
  • u013730093
  • u013730093
  • 2017-03-28 19:30:36
  • 2566

为什么pyspider+mongodb只存了一部分数据到数据库,而其他大量数据并没有写入数据库!

什么也不说,先上图! 在pyspider,抓到的数据是这样的 而查看数据库却是这样! 去查看爬虫代码,debug一下,结果是这样: 我只能说**网站这坑货!!哥...
  • myfancysky
  • myfancysky
  • 2015-08-12 00:19:10
  • 2074

【转帖】pyspider:connect to scheduler rpc error: error(10061, '')问题解决方案

解决方案: 1、https://github.com/binux/pyspider/issues/238 2、https://segmentfault.com/q/1010000004743537...
  • WebStudy8
  • WebStudy8
  • 2016-06-10 10:13:06
  • 2034

Pyspider 框架学习时走过的一些坑

背景:自己在做一个 V2EX 爬虫的时候,需要把爬取的帖子中的内容( title 和 content)保存在本地数据库。 环境:Pycharm 2016.1 + MySQL 5.7 ...
  • tzs_1041218129
  • tzs_1041218129
  • 2016-10-20 22:42:26
  • 7376
收藏助手
不良信息举报
您举报文章:pyspider的mysql数据存储接口
举报原因:
原因补充:

(最多只允许输入30个字)