内容分享:如何将python采集到的文章保存到wordpress
优采云 发布时间: 2022-10-11 09:17内容分享:如何将python采集到的文章保存到wordpress
前言
WordPress是我自己一直在使用的网站框架的更受欢迎的博主之一,有几种方法可以上传python采集文章:
使用wordpress的静态API的直接操作数据库使用wordpress_xmlrpc第三方模块
这些体验中的第三种是最舒适,新手友好且推荐的
好的,让我们逐一介绍这些方法的用法
直接在数据库上工作
我们可以使用python的pymysql库来执行mysql数据库的直接连接操作,不用太多介绍,直接在示例代码上:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import pymysql.cursors
# 连接数据库
connect = pymysql.Connect(
host='数据库IP',
port=3306,
user='root',
passwd='xxxx',
db='数据库名称',
charset='utf8mb4'
)
# 获取游标
cursor = connect.cursor()
# 插入数据
def insert(post_author, post_date, post_date_gmt,post_content,post_title,post_status,comment_status,ping_status,post_type,menu_order,post_excerpt,to_ping):
cursor.execute('INSERT INTO wp_posts (post_author, post_date, post_date_gmt,post_content,post_title,post_status,comment_status,ping_status,post_type,menu_order,post_excerpt)VALUES ( %d, %s,%s, %s,%s, %s,%s, %s,%s,%s, %s, %s)', (1, post_date, post_date_gmt,post_content,post_title,post_status,comment_status,ping_status,post_type,menu_order,post_excerpt,to_ping))
connect.commit()
print('成功插入', cursor.rowcount, '条数据')
使用字快的休息应用程序接口
其余 API 的官方文档如下:
让我们首先尝试以下格式的API的强大功能:
1
http://{域名}/index.php/wp-json/wp/v2/posts
例如:
1
http://www.jhcms.net/index.php/wp-json/wp/v2/posts
我们几乎可以看到大部分信息文章
那么如何创建一个新的文章
我们参考官方文档
获取重要信息,如下所示:
参数日期对象发布日期,位于站点的时区
。
date_gmt
对象的发布日期,如 GMT。
鼻涕虫
对象的字母数字标识符,该对象的类型是唯一的。
地位
对象的命名状态。其中之一:发布,未来,草稿,待定,私有
密码
用于保护对内容和摘录的访问的密码。
标题
对象的标题。
内容
对象的内容。
作者
对象作者的 ID。
摘录
对象的摘录。
featured_media
对象的特色媒体的 ID。
comment_status
注释是否在对象上打开。其中之一:开放,封闭
ping_status对象是否可以
ping 。其中之一:开放,封闭
格式
对象的格式。其中之一:标准,除了,聊天,画廊,链接,图像,报价,状态,视频,音频
元
元字段。
粘
是否应将对象视为粘性对象。
模板
用于显示对象的主题文件。其中之一:''
类别
在类别分类中分配给对象的术语。
标签
在post_tag分类中分配给对象的术语。
帖子 /wp/v2/帖子
表示使用发布方法提交到 /wp/v2/帖子地址
默认为只读API,实现提交数据需要安装的插件jwt,安装jwt后可以向令牌发出请求,然后将令牌信息传递给其余的API,系统不会拒绝你的发布文章操作
操作步骤
步骤 1 在文字压缩后台安装 JWT 身份验证插件
第 2 部分 将以下内容添加到网站根目录 .htaccess 文件
1
2
3
4
5
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
将以下内容添加到 wp 配置.php文件中
1
2
define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');//随便填写一个密码
define('JWT_AUTH_CORS_ENABLE', true);
发布请求以调用 {您的域名}/wp-json/jwt-auth/v1/令牌接口以获取令牌
基于令牌发布文章
核心代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# -*- coding:utf-8 -*-
import re
import requests
import json
import time
from numpy import *
def get_token():
session = requests.Session()
url = 'http://sex.newban.cn/wp-json/jwt-auth/v1/token'
data = {
'username':"son3g",
'password':"123456"
}
headers = {'user-agent': 'Mozolla/5.0',
}
resp = session.post(url, data=data, headers=headers, timeout=3335) # 请求
r = json.loads(resp.content)
return r
def _do_post( token =''):
session = requests.Session()
url = 'http://sex.newban.cn/wp-json/wp/v2/posts'
data = {
'date': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
'date_gmt': time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()),
'slug': 'xx',
'status': 'publish',
'password': '',
'title': 'rest api发布post测试',
'content': '系统测试我想我是海冬天的大海',
'author ': '121852835@qq.com',
'excerpt': '',
'featured_media': '0',
'comment_status': 'open',
'ping_status': 'closed',
'format': 'standard',
'meta': [],
'sticky': False, # 置顶
'template': '',
'categories': '1', # 1 未分类
'tags': ''
}
headers = {'user-agent': 'Mozolla/5.0',
'Authorization': 'Bearer ' + token
}
resp = session.post(url, data=data, headers=headers, timeout=3335) # 请求
print (resp.text)
# r = json.loads(resp.content, 'utf-8')
# if r["code"] == 400:
# print r["code"]
# print r["message"]
# print r["data"]
# print r["data"]["status"]
#
#
# # print r["data"]["params"]
# for key in r["data"]["params"]:
# print ("%s=> %s" % (key, r["data"]["params"][key]))
# # print 'resp.text=>' + resp.text
#
# # print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
# # print time.strftime('%a, %d %b %Y %H:%M:%S GMT+0800 (CST)',time.localtime(time.time())),
# dt = formatdate(None, usegmt=True)
# dt1 = formatdate(None, usegmt=False)
# dt3 = formatdate()
# print(dt)
# print(dt1)
# else:
# print r["code"]
# print r["message"]
# print resp.status_code
if __name__=='__main__':
r = get_token()
print (r)
_do_post(r["data"]['token'])
使用wordpress_xmlrpc第三方模块
操作步骤如下:
安装wordpress_xmlrpc
1
pip install python-wordpress-xmlrpc
模块介绍
1
2
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts,NewPost
发布新文章
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def push_article(post_title,post_content_html):
post = WordPressPost()
post.title = post_title
post.slug = post_title
post.content = post_content_html
post.terms_names = {
'post_tag': post_title.split(" "),
'category': ["itarticle"]
}
post.post_status = 'publish'
wp.call(NewPost(post))
if __name__ == '__main__':
push_article("文章标题","文章内容")
物业描述:
完整代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding:utf-8 -*-
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts,NewPost
def push_article(post_title,post_content_html):
post = WordPressPost()
post.title = post_title
post.slug = post_title
post.content = post_content_html
post.terms_names = {
'post_tag': post_title.split(" "),
'category': ["itarticle"]
}
post.post_status = 'publish'
wp.call(NewPost(post))
if __name__ == '__main__':
push_article("文章标题","文章内容")
是不是很简单,如果是批量上传,直接循环调用就可以
本文为作者而设原创转载时请注明出处 谢谢
灰熊 3,000
– 点点滴滴的积累,欢迎来到乱码的3,000技术博客站
实用文章:写文章的工具-免费智能生成文章的工具
写文章的软件,今天给大家分享一个免费的自动写文章的软件,自动生成文章组的段落和目录的详细参考图片。
关于搜索引擎优化,关键词排名一直是我们的首要任务。小宝认为,SEO优化的效果直接体现在关键词的排名上。如果优化做得好,关键词的排名自然就高了。看了前面列出的一些搜索引擎优化信息网站,总结了一些规律和思路。
一个关键词表示密度和关键词表示以什么方式
一般来说,标题关键词的位置越高,排名越好。在标题、描述和 关键词 标签方面,简洁和清晰是必不可少的。比如站长之家,我们致力于为中文网站赋能!这个标题很简洁明了,不超过30字,也突出了网站的主题,大家可以好好研究一下。描述的编写方式与 关键词 描述相同。主题清晰、简单、大方。这是标准的书写方式。
2网站内容更新的质量和频率
至于网站内容更新的质量,本质上是原创性质的。原创文章和关键词可以方便进入,也可以帮助网站增加权重,关键词排名自然会提高,重要的是在这之后网站 和 关键词 的优化方法排名相对稳定。还有文章内容的相关性,可以吸引用户,降低跳出率。我们还需要注意内容的更新频率。之前的更新内容很及时,但是随着时间的推移,网站的更新逐渐越来越频繁,网站的权重和流量也会下降,所以坚持很重要. 我认为做搜索引擎优化是一项需要耐心的工作。耐心和毅力会让搜索引擎优化得很好,所以更新时不要懈怠。
三内链外链建设
我们都知道内链为王,外链为王的说法。内部链接在 SEO 中也起着非常重要的作用。关键词添加超链接会增加网页的权重,总会带来排名。不要忽视网站的内链,有时候一个有用的内链比论坛上一百个外链还要有用。有很多方法可以建立外部链接。需要注意的一件事是,带有目标文本的链接是高质量的外部链接。相同的外部链接也需要相关且广泛。与自己的网站主题相同、定位相同的外链可以增加用户体验,从而带来百度流量,增加权重。广泛是指大量参与,而不仅仅是单个关键词
现在很多人在做网站优化的时候,经常会出现一个误区,就是想尽办法把自己网站优化到首页,然后就开始认为SEO优化是成功了,但是过了一段时间,他们发现原来的排名在首页的网站,不知不觉就滑到了后面。所以在网站的优化方面,尽可能的优化首页是基础,这次成功后稳定排名是关键。工作要点,一起来分析一下正确的SEO优化思路吧!
四:作弊方式不可用,排名上升后会掉
众所周知,在SEO优化行业,有两个关键的优化思路,一个是黑帽优化的思路,一个是白帽优化的思路。有些人在使用黑帽优化的时候,不知不觉就走上了作弊之路,通过各种作弊手段快速提升网站的排名,比如使用隐藏文字、隐藏链接、跳跃、关键词叠加等方法欺骗搜索引擎,可能有很多站长能感受到排名快速上升的快感,但是当他把网站的排名优化到首页的时候,却发现排名并不稳定一点也不。某次百度更新后,网站的排名再次跌入无底深渊!
五:优化从基础做起,持之以恒
根据百度搜索引擎策略提供给我们的优化方法,我们很容易得出一个结论,那就是从基础做起,从网站建设规划、内容建设、外链建设、内链优化,等等。对于多方面的综合优化,不可能简单地使用某种方法。比如很多人知道内容为王,外链为王,所以放弃网站的用户体验,网站的结构合理化,拼命从事网站外链和内容,可能在某些方面对百度蜘蛛很有吸引力,但是如果内容太多不切实际,再加上大量浪费的外链,不会给网站带来任何质的提升!反之,也会因为徇私而导致网站的流量跳转率上升!然后终于让百度降级你的网站!返回搜狐,查看更多