【发布时间】:2021-04-19 02:31:16
【问题描述】:
我正在尝试通过抓取公共数据源并在 Python3 中对 HTML/JScript 进行一些清理,然后将其作为页面/帖子发送到 wordpress 博客,从而在 wordpress 上自动更新页面。
似乎总是如此,我喜欢那里的 80%-90%。我的数据清理工作正常进行......这是wordpress的一面,我现在正在碰壁。我被困在两个看起来应该很简单的问题上,但是在寻找了几个小时后,我在关于 XML-RPC 的 wordpress 文档中找不到现成的答案。..
第一个看似简单的问题是我真的只想将更新推送到单个静态页面。我正在尝试使用一些收集统计信息和图表来更新页面。默认情况下,当我推送新页面(或发布,没关系)时,它会在 wordpress 上创建一个具有相同名称和新内容的全新页面,但永久链接不同。我真的希望这不是一个死胡同,因为它会杀死整个项目..
其次,您通过 XML-RPC 传递到 wordpress 的内容似乎只是直接放入帖子中。这最适合我。但是,有一批脚本被刮掉了,看来我需要将该脚本作为 HTML 块传递给 wordpress。我已经通过手动复制和粘贴代码对此进行了测试,并且可以重新创建问题。如果我只是在编辑时将所有 HTML 和脚本放入页面内容中,那么除了脚本生成的图表之外,大部分内容都会显示出来。脚本和图表实际上根本没有出现在页面上(没有垃圾输出或任何东西)。但是,如果我在 wordpress 页面上创建一个“HTML 代码”块并将所有抓取的数据转储到该块中,那么一切都会完美显示..
所以这是让我今晚保持清醒的最后两个症结所在。重复的页面而不是更新的页面,还有几个漂亮的饼图,我只能手动完成这个过程:(
感谢任何想法/帮助。一旦我将其匿名化后,我很乐意分享我的脚本小子级别的 Python 代码,但我认为这两个都是更侧重于 wordpress/XML-RPC 的问题。
编辑: 这是我的代码的 python 到 wordpress 部分,经过清理以删除我的个人信息:
#Configure my wordpress site settings:
your_blog = Client('https://home.XXXXXXXX.com/xmlrpc.php', 'XXXXXXXX', 'XXXXXXXX')
#Get info on existing posts (debugging):
myposts=your_blog.call(posts.GetPosts())
print(myposts)
#Generate a new page:
page = WordPressPage()
page.title = 'Comic Collection Stats'
page.slug='https://home.XXXXXXXX.com/?p=246'
page.content = str(collection_page)
page.id = your_blog.call(posts.NewPost(page))
page.post_status = 'publish'
your_blog.call(posts.EditPost(page.id, page))
编辑2: 在进一步挖掘之后,我将继续使用 Rest API 方法而不是 XML-RPC。无论如何,XML-RPC 似乎已经过时了。在那里也遇到了障碍,但希望这是一个更好的时间汇点,因为它是一个更现代的解决方案。
【问题讨论】:
-
你用的是哪个python wordpress包(如“python-wordpress-xmlrpc”等)?
-
如果可能,还请提供执行更新的代码 sn-p 作为进一步讨论的基础。
-
谢谢,我正在使用 python-wordpress-xmlrpc。我还添加了我的 python 代码的相关部分,经过清理以删除我的信息。