内容分享:如何将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优化行业,有两个关键的优化思路,一个是黑帽优化的思路,一个是白帽优化的思路。有些人在使用黑帽优化的时候,不知不觉就走上了作弊之路,通过各种作弊手段快速提升网站的排名,比如使用隐藏文字、隐藏链接、跳跃、关键词叠加等方法欺骗搜索引擎,可能有很多站长能感受到排名快速上升的快感,但是当他把网站的排名优化到首页的时候,却发现排名并不稳定一点也不。某次百度更新后,网站的排名再次跌入无底深渊!

  五:优化从基础做起,持之以恒

  根据百度搜索引擎策略提供给我们的优化方法,我们很容易得出一个结论,那就是从基础做起,从网站建设规划、内容建设、外链建设、内链优化,等等。对于多方面的综合优化,不可能简单地使用某种方法。比如很多人知道内容为王,外链为王,所以放弃网站的用户体验,网站的结构合理化,拼命从事网站外链和内容,可能在某些方面对百度蜘蛛很有吸引力,但是如果内容太多不切实际,再加上大量浪费的外链,不会给网站带来任何质的提升!反之,也会因为徇私而导致网站的流量跳转率上升!然后终于让百度降级你的网站!返回搜狐,查看更多

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线