歡迎訪問成都SEO專家的博客,專注成都百度優化,成都搜索引擎優化,成都網站優化、值得信賴成都SEM專家!

用python程序自動更新wordpress網站文章

wordpress 譚波 79℃

僅需200多行代碼,網站變成機器人兒。用wordpress搭建的網站可以用程序控制完成自動采集信息,并自動上傳更新。如果外部條件不變化(比如數據來源),理論上wordpress制作的網站可以在無人值守的狀態下一直自轉下去。程序用python寫成,需要安裝第三方包wordpress_xmlrpc。

以下是我們為某網站定制的自更新程序代碼,僅是數據上傳部分。供參考.

#coding:utf-8 本程序實現在http://www.okinawa-newlife.com網站自動發帖,別的wordpress網站可套用。
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo
from wordpress_xmlrpc.methods import posts
from wordpress_xmlrpc.methods import taxonomies
from wordpress_xmlrpc import WordPressTerm
from wordpress_xmlrpc.compat import xmlrpc_client
from wordpress_xmlrpc.methods import media, posts
import sys
import os

def picksn(): # 查找本地編號文件,
# 本函數取得所有待處理房產編號,和已處理房產編號 作為list返回給調用函數。沒有返回空
global path
wfname = path + ‘房產編號.txt’ #未處理的房產編號
yfname = path + ‘房產編號已傳.txt’ #已處理的房產編號
if not os.path.isfile(wfname): # 判斷本地是否存在文件是否存在,不存在就退出
print(“房產編號文件不存在。”)
wlist = [“”]
else:
with open(wfname, ‘r’,encoding=’utf-8′) as wfile: # 從文件讀,如文中有漢字,encoding 參數必須有,否則報錯 UnicodeDecodeError。。。
wlist = wfile.readlines() # 整個文件讀出放到列表中
if not os.path.isfile(yfname): # 判斷本地是否存在已處理編號的文件
ylist = [“”]
else:
with open(yfname, ‘r’, encoding=’utf-8′) as yfile: # 從文件讀,如文中有漢字,encoding 參數必須有,否則報錯 UnicodeDecodeError。。。
ylist = yfile.readlines() # 整個文件讀出放到列表中
sns = [wlist[0],ylist[0]] #把待處理編號和已處理編號都返回給調用函數
return sns

def sendpost(sn):
para = getinfo(sn)
wp = Client(‘http://www.okinawa-newlife.com/xmlrpc.php’, ‘用戶名’, ‘密碼’)
post = WordPressPost()
post.title = para[0]
post.content = para[1]+para[2]+para[3]+para[4]+para[5]+para[6]
post.post_status = ‘publish’ #文章狀態,不寫默認是草稿,private表示私密的,draft表示草稿,publish表示發布
post.terms_names = {
‘post_tag’: [‘沖繩房產’, ‘日本房產’,’沖繩投資’,para[1]], #文章所屬標簽,沒有則自動創建
‘category’: [‘沖繩房產’,para[1] ] #文章所屬分類,沒有則自動創建
}

# 以下代碼添加特色圖像
imgfname = path+sn+’.jpg’ # 上傳的圖片文件路徑
if os.path.isfile(imgfname): # 判斷文件名是否存在,有才上傳圖片
# prepare metadata
data = {
‘name’: ‘picture.jpg’,
‘type’: ‘image/jpeg’, # mimetype
}
# read the binary file and let the XMLRPC library encode it into base64
with open(imgfname, ‘rb’) as img:
data[‘bits’] = xmlrpc_client.Binary(img.read())
response = wp.call(media.UploadFile(data))
attachment_id = response[‘id’]
post.thumbnail = attachment_id # 縮略圖的id

post.id = wp.call(posts.NewPost(post))
print(sn+”號物業已上傳”)

def getinfo(sn):
# 按編號從之前保存的本地文件讀取信息
#para= [] # 保存參數的list
filename = path+sn+’-有用信息.txt’
with open(filename, ‘r’, encoding=’utf-8′) as f: # 從文件讀,如文中有漢字,encoding 參數必須有,否則報錯 UnicodeDecodeError。。。
para = f.readlines() # 整個文件讀出放到列表中
return para
#sns = filestr.split(“,”) # str轉為list, 逗號分隔

#程序起點在此
path = r’C:\20200714\房產素材\\’ # 指定一個保存文件的文件夾
sns = picksn() # 獲取編號列表,sns是嵌套list,他的值一個是待處理編號的list, 一個是已處理編號的list
wsns = sns[0].split(‘,’) #待處理編號list
ysns = sns[1].split(‘,’) #已處理編號list
#wsns = [‘42779′,’42708’]
#ysns = [“”]
nsns = [“”] #本次程序執行處理的編號list
yfname = path + ‘房產編號已傳.txt’ #保存已上傳編號的文件名
for i in wsns: #把待處理編號中的值逐個處理
if i not in ysns: #判斷下是否在已處理編號中,沒有才繼續下邊的post程序
# ctn = input(“將要上傳”+i+”,繼續按回車,按n退出程序”) #人工干預是否繼續,按回車值為空,繼續
# if ctn == ”:
filename = path+i+’-有用信息.txt’
if os.path.isfile(filename): # 判斷文件名是否存在,如不存在就處理下一個編號
sendpost(i)
# 把更新過的編號做個記錄,保存本地文件中,避免重復更新
with open(yfname, ‘a’, encoding=’utf-8′) as f:
f.write(“,”+i)
# else:
# sys.exit() #退出程序

print(“上傳完成!”)

轉載請注明:成都SEO-成都網站建設-成都網站優化 » 用python程序自動更新wordpress網站文章

喜歡 (0)
十大棋牌游戏排行榜 广东福彩36选7历史开奖结果 黑龙江福彩22选5走势图 急速赛车技巧 股票指数期货名词解释 体彩大乐透开奖结果 急速赛车场 浙江11选五5专家推荐快赢网 排列五安装 看股票涨跌 助赢幸运飞艇资料计划软件