昊天SEO

Python 直接导入WordPress数据库

今天给大家分享下python在本地远程同步文章数据到wordpress,如果你的网站数据库是支持远程连接的话,那可以用下面的方法。
我当初写这个代码是为了解决wordpress底层站群的文章同步问题,可以让本地的mysql数据通过python脚本远程插入到网站数据库里,从而可以完成定时的更新。当然这个脚本如果部署到服务器上会更好,可以通过windows的计划任务和linux的cron服务来定期的启动这个脚本,从而达到每天更新文章的目的。

写这个脚本主要是要熟悉wordpress的表结构,不然你没法插入数据到wordpress数据表。
代码如下:

wordpress 数据python同步方法

#encoding=utf-8
 #description:同步wordpress文章数据
import MySQLdb

 import datetime

 import time

 from  tools import *

def wp_checktitle(dbconn,title):
 '''wordpress检测是否有重复标题'''

cursor=dbconn.cursor()

sql = "select post_title from wp_posts where post_title='%s'" % (title)
 cursor.execute(sql)

if cursor.rowcount == 0:
 checkflag = 1
 else:
 checkflag = 0

return checkflag

def  sync_wordpress(dbconn,title,content):
 '''同步wordpress程序'''

checkflag = wp_checktitle(dbconn,title)
 cursor=dbconn.cursor()

curtime = str(datetime.datetime.now())[:19]

post_author = 1
 post_date = curtime
 post_date_gmt = curtime
 post_content = content
 post_title = title
 post_name = post_title
 post_modified = curtime
 post_modified_gmt = curtime
 post_content_filtered = ''
 currenttime = int(time.time())

if checkflag:
 try:
 postsql = ''
 postsql = '''INSERT INTO `wp_posts` (
 `post_author` ,
 `post_date` ,
 `post_date_gmt` ,
 `post_content` ,
 `post_title` ,
 `post_name` ,
 `post_modified`,
 `post_modified_gmt`,
 `post_content_filtered`
 )
 VALUES (
 '%(post_author)s','%(post_date)s','%(post_date_gmt)s','%(post_content)s','%(post_title)s','%(post_name)s','%(post_modified)s','%(post_modified_gmt)s','%(post_content_filtered)s')''' % {'post_author':post_author,'post_date':post_date,'post_date_gmt':post_date_gmt,'post_content':post_content,'post_title':post_title,'post_name':post_name,'post_modified':post_modified,'post_modified_gmt':post_modified_gmt,'post_content_filtered':post_content_filtered}

cursor.execute(postsql)
 dbconn.commit()

rowid = cursor.lastrowid

metasql = ''
 metasql = "insert into `wp_postmeta`(`post_id`)VALUES(%s)" % (rowid)
 cursor.execute(metasql)
 dbconn.commit()

insertsql = '''INSERT INTO `wp_term_relationships` (
 `object_id` ,
 `term_taxonomy_id`
 )
 VALUES (
 %(object_id)s, %(term_taxonomy_id)s) ''' % {'object_id':rowid,'term_taxonomy_id':1}

cursor.execute(insertsql)
 dbconn.commit()

return 1

except Exception, e:
 print '数据库错误:', e
 return 0

finally:
 cursor.close()
 dbconn.close()
 else:
 print 'wordpress title exist'
 return 1

title = 'titl-wptitle'
 zcontent = 'content—————–'

curhost = ''##远程数据库服务器地址
 webuser = ''#数据库用户名
 webpwd =''#数据库密码
 webdb = ''#数据库名称

dbconn = MySQLdb.connect(host=curhost, user=webuser, passwd=webpwd, db=webdb,port=3306, charset='utf8')

flag = sync_wordpress(dbconn,title,zcontent)

if flag:
 print 'wordpress sync success'
 else:
 print 'wordpress sync error'

本文地址官网    新乡网站建设,seo

分享到:更多 ()
a