2025年软考各科目详细安排已公布,报哪个科目会更好?,红鱼学习网分享考证经验3

import json
import re
import time
import pyperclip
from playwright.sync_api import Playwright, sync_playwright, expect
import logging

# 配置日志记录
logging.basicConfig(filename='published_titles.log', level=logging.INFO,
format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')

# 定义JSON文件的路径
file_path = r"D:\code5000\3-sage\req\202501批量获取公众号往期推送url链接\weixin_article346.json"

def publish_article(page, title, content):
pyperclip.copy(content)
max_retries = 3
retries = 0
while retries < max_retries:
try:
page.goto("http://www.hyxx100.com/wp-admin/post-new.php")
page.get_by_role("checkbox", name="考证经验").check()
page.get_by_role("textbox", name="添加标题").click()

page.get_by_role("textbox", name="添加标题").fill(title)
# page.get_by_role("textbox", name="添加标题").press("ControlOrMeta+a")
# page.get_by_role("textbox", name="添加标题").press("ControlOrMeta+c")
page.get_by_role("button", name="添加默认区块").click()

# 将文章内容复制到剪贴板


# 模拟按下 Ctrl + V 粘贴内容
# page.keyboard.press("Tab")
# page.get_by_role("textbox", name="输入/来选择一个区块").click() or page.keyboard.press("Tab")
time.sleep(0.01)
# page.locator('textarea').click()
page.keyboard.press("ControlOrMeta+V")
time.sleep(0.1)

# 清空剪贴板
pyperclip.copy('')
# time.sleep(99)

page.get_by_role("button", name="发布", exact=True).click()
# page.get_by_role("button", name="推荐: 添加标签").click()
# page.get_by_role("combobox", name="新增标签").click()
# page.get_by_role("combobox", name="新增标签").fill("考证考研经验")
# time.sleep(99)

# page.get_by_role("checkbox", name="总是显示发布前检查。").uncheck()
# page.get_by_label("编辑器发布").get_by_role("button", name="发布", exact=True).click()

# 可以根据页面实际情况添加判断发布是否成功的逻辑
# 这里简单假设没有异常就认为发布成功
logging.info(f"文章发布成功: {title}")
print(f"文章发布成功: {title}")
return True
except Exception as e:
retries += 1
print(f"发布文章 {title} 时出错,第 {retries} 次重试: {e}")
time.sleep(2) # 等待2秒后重试
print(f"发布文章 {title} 失败,已达到最大重试次数。")
return False


def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("http://www.hyxx100.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.hyxx100.com%2Fwp-admin%2Fpost-new.php&reauth=1")
page.get_by_role("checkbox", name="记住我").check()
page.get_by_role("textbox", name="用户名或邮箱地址").click()
page.get_by_role("textbox", name="用户名或邮箱地址").fill("admin")
page.get_by_role("textbox", name="密码").click()
page.get_by_role("textbox", name="密码").fill("6577s*~IPAva")
# page.get_by_role("button", name="显示密码").click()
page.get_by_role("button", name="登录").click()

try:
# 打开JSON文件
with open(file_path, 'r', encoding='utf-8') as file:
# 加载JSON数据
data = json.load(file)
n = 1

# 遍历JSON数据中的每个文章条目
for article in data:
# 获取文章的标题和内容
title = article.get('title')
title = title + f',红鱼学习网分享考证经验{n}'
content = article.get('content')
content = content.replace('。', '。\n')
content = content + '\n 点击网址快速购买考证资料:http://hongy.100xuexi.com 一站式考试考证优质服务平台,走向成功人生。'
n+=1

if title and content:
publish_article(page, title, content)
except FileNotFoundError:
print(f"未找到文件: {file_path}")
except json.JSONDecodeError:
print(f"无法解析JSON文件: {file_path}")
except Exception as e:
print(f"发生未知错误: {e}")

# 不关闭浏览器,可根据需要取消注释以下代码来关闭
# context.close()
# browser.close()


with sync_playwright() as playwright:
run(playwright)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注