Dev.to AI 🤖 Ai 👁 0 📖 3 min read

Đánh dấu câu cần người xác nhận trong bản nháp WordPress bằng REST API và Python

Nội dung do AI viết hay sai ở cùng một kiểu chỗ: giá, con số, câu nói về công dụng. Một website cho máy viết và đăng thẳng hàng loạt bài, vài tuần sau mới phát hiện nhiều bài ghi giá cũ và nói quá công dụng sản phẩm. Bài

Nội dung do AI viết hay sai ở cùng một kiểu chỗ: giá, con số, câu nói về công dụng. Một website cho máy viết và đăng thẳng hàng loạt bài, vài tuần sau mới phát hiện nhiều bài ghi giá cũ và nói quá công dụng sản phẩm. Bài này viết một script nhỏ đọc các bản nháp qua WordPress REST API và đánh dấu những câu cần người xác nhận trước khi đăng. Script không sửa gì, chỉ lập danh sách cho người duyệt.

Lấy bản nháp qua REST API

Bản nháp cần xác thực. Cách đơn giản là Application Password của một tài khoản biên tập viên (Hồ sơ người dùng, mục Mật khẩu ứng dụng).

import requests

def lay_ban_nhap(site: str, user: str, app_pw: str, so_bai=20) -> list:
    r = requests.get(
        f"{site}/wp-json/wp/v2/posts",
        params={"status": "draft", "per_page": so_bai, "context": "edit"},
        auth=(user, app_pw), timeout=30,
    )
    r.raise_for_status()
    return [{"id": p["id"], "title": p["title"]["raw"], "html": p["content"]["raw"]} for p in r.json()]

Luật đánh dấu

import re
from bs4 import BeautifulSoup

LUAT = {
    "gia": re.compile(r"\d[\d.,]*\s?(đ|đồng|vnđ|k|nghìn|triệu)\b", re.I),
    "phan_tram": re.compile(r"\d+([.,]\d+)?\s?%"),
    "nam": re.compile(r"\b20\d{2}\b"),
    "cong_dung": re.compile(r"(chữa|điều trị|khỏi hẳn|trị dứt điểm|cam kết hiệu quả|100% an toàn)", re.I),
    "hua_ket_qua": re.compile(r"(chắc chắn lên top|đảm bảo top|cam kết thứ hạng)", re.I),
}

def danh_dau(html: str) -> list:
    text = BeautifulSoup(html, "html.parser").get_text(" ")
    cau = re.split(r"(?<=[.!?])\s+", text)
    ket_qua = []
    for c in cau:
        nhan = [k for k, rx in LUAT.items() if rx.search(c)]
        if nhan:
            ket_qua.append((nhan, c.strip()[:160]))
    return ket_qua

for bai in lay_ban_nhap("https://example.com", "bientap", "xxxx xxxx xxxx xxxx"):
    for nhan, c in danh_dau(bai["html"]):
        print(f"[{bai['id']}] {','.join(nhan)}: {c}")

Ghi chú

  • Danh sách từ công dụng nên do từng doanh nghiệp tự định nghĩa theo quy định quảng cáo của ngành mình. Thực phẩm chức năng, làm đẹp có danh sách dài hơn nhiều.
  • Script chỉ đọc. Không có lệnh nào đổi trạng thái bài; quyết định đăng vẫn là của người.
  • Regex giá ở trên đơn giản, sẽ có báo nhầm. Báo nhầm ở đây rẻ hơn bỏ sót một giá sai.

Phần nào để máy, phần nào để người

Khung bài, heading, tiêu đề, mô tả, link nội bộ là phần lặp lại theo quy tắc, máy làm tốt. Giá, số liệu, công dụng, lời khuyên chuyên môn là phần cần sự thật về doanh nghiệp, và đó là phần script này giúp người duyệt soát nhanh hơn, không thay người duyệt.

Cách Onic AI SEO Automation chia phần Onpage giữa máy và người duyệt có trong bài Onic AI tự động hóa những phần Onpage nào trên Onic.vn.

Bài gốc: https://onic.vn/kien-thuc/onic-ai-tu-dong-hoa-onpage/

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.