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的脚本...

自建pyspider中的mysql语句

自建pyspider中的mysql语句

pyspider爬虫的一个应用

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

(新手向)教你如何搭建简易pyspider服务器

纯新手向,一步一步教你如何搭建pyspider服务器

spider/pyspider基础

一、爬虫的基本思路(以下内容选自《知乎》) 链接:http://www.zhihu.com/question/20899988/answer/24923424 想象你是一只蜘蛛,现在你被...

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

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

Vim与Python真乃天作之和

本文由编程派-EarlGrey翻译,首发于编程派。原文出自realpython,是Vim的爱好者专门针对利用Sublime Text 3设置Python IDE一文所写。译者本人也是依照Sublime...

修改MySQL数据存储位置

  • 2017年11月06日 03:17
  • 105KB
  • 下载

mysql数据存储

  • 2016年05月07日 16:02
  • 491KB
  • 下载

MySQL数据存储结构

第一部分:存储引擎及存储结构记住:每个索引就是一个B-tree Mysql最重要的两个存储引擎是: MyISAM: 1、不支持事物:无法回滚 2、不支持聚簇索引:数据不能保存在索引中,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pyspider的mysql数据存储接口
举报原因:
原因补充:

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