wordpress发帖机器

确认python3环境

python3 --version

输出效果

Python 3.6.9

安装pip3

sudo apt-get install python3-pip

确认pip3版本

pip3 --version

输出效果

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

安装request

pip3 install request

安装wordpress-xmlrpc

pip3 install python-wordpress-xmlrpc

编写程序测试wordpress-xmlrpc正常服务

vi xmlrpctest.py

键入i,进入编辑模式

import re
import requests
import datetime
import sys
import json
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods import posts

client = Client('我的wordpress地址/xmlrpc.php', '用户名', '密码')
post = WordPressPost()
post.title = "test"
post.content = "test"
post.id = client.call(posts.NewPost(post))
post.post_status = 'publish'
client.call(posts.EditPost(post.id, post))
print("test" + ' has been published')

esc退出编辑模式,键入:wq保存
执行测试 python3 xmlrpctest.py
输出效果 test has been published

到自己的wordpress上确认发帖结果,标题test,正文test

反复访问目标网站,找出数据流后编写python脚本

vi item.py

键入i,进入编辑模式

import re
import requests
import datetime
import sys
import json
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods import posts

#模拟浏览器
head = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
    }
# 登录网页,获取网页源代码
s = requests.session()
#获取items
getitems_url = "一个网址"
head0 = {
        "accept":"application/json",
        "content-type":"application/json",
        "x-api-source":"pc",
        "x-csrftoken":"一个token",
        "x-requested-with":"XMLHttpRequest",
        "x-shopee-language":"en",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36",
        "content-length": "一个长度",
        "cookie": '一个cookie',
        "origin": "https://一个网站",
        "referer": "https://一个网站"
        }
#print(lst)
#lst为另一次模拟访问获取到的主键List,这次模拟的代码被省略
ni=0
nj=0
nk=0
nl=len(lst)
#每次最多循环20次,无理由预防死循环
while ni<=20 and nl>0:
    ll=[]
    #每次循环获取6个数据
    while nj<=1 and nk<nl and len(ll)<6:
        ll.append(lst[nk]['itemid'])
        nk+=1
        nl+=1
    payload = '{一个payload}'
    ress=s.post(getitems_url, headers=head0, data=payload)
    res=ress.content
    #获取数据后向wordpress发帖
    client = Client('我的wordpress地址/xmlrpc.php', 'wordpress用户名', 'wordpress密码')
    post = WordPressPost()
    post.title = str(ll)
    post.content = str(res)
    post.id = client.call(posts.NewPost(post))
    post.post_status = 'publish'
    client.call(posts.EditPost(post.id, post))
    #每次发帖输出执行结果
    print(str(ll) + ' has been published')

esc退出编辑模式,,键入:wq保存
执行测试 python3 item.py