2016-08-30 54 views
1

我試圖通過XMLRPC插入HTML內容在我的WordPress博客,但如果我插入HTML插入HTML內容TP WordPress的 - 我得到一個錯誤:Python的 - 使用XML-RPC API

raise TypeError, "cannot marshal %s objects" % type(value) TypeError: cannot marshal objects

如果我使用漂白劑(清潔標籤) - 我買了標籤的文字在我的網頁

我的代碼

# coding: utf-8 
import requests 
from bs4 import BeautifulSoup 
import bleach 
from wordpress_xmlrpc import Client, WordPressPost 
from wordpress_xmlrpc.methods import posts 


xmlrpc_url = "http://site.ru/xmlrpc.php" 
wp_username = "user" 
wp_password = "123" 
blog_id = "" 
client = Client(xmlrpc_url, wp_username, wp_password, blog_id) 

url = "https://lifehacker.ru/2016/08/30/finansovye-sovety-dlya-molodyx-par/" 
r = requests.get(url) 
soup = BeautifulSoup(r.content) 

post_title = soup.find("h1") 
post_excerpt = soup.find("div", {"class", "single__excerpt"}) 
for tag in post_excerpt(): 
    for attribute in ["class", "id", "style"]: 
     del tag[attribute] 
post_content = soup.find("div", {"class","post-content"}) 
for tag in post_content(): 
    for attribute in ["class", "id", "style"]: 
     del tag[attribute] 

post = WordPressPost() 
post.title = post_title.text 
post.content = post_content 
post.id = client.call(posts.NewPost(post)) 

post.post_status = 'publish' 
client.call(posts.EditPost(post.id, post)) 

如何,我可以在我的WordPress博客中插入已解析的HTML內容?

回答

1

使用。漂白和固定問題後更換。

我的代碼

... 
post_content_insert = bleach.clean(post_content) 

post_content_insert = post_content_insert.replace('&lt;','<') 
post_content_insert = post_content_insert.replace('&gt;','>') 


post = WordPressPost() 
post.title = post_title.text 
post.content = post_content_insert 
post.id = client.call(posts.NewPost(post))