+
106
-

回答

我们以头条为例,利用Playwright加载头条的登录cookie,然后自动发布微头条,下面是测试结果

800_auto

1、先在chrome中安装一个获取浏览器cookie的chrome插件

800_auto

3、chrome登录头条后,点击插件获取cookie保存到本地cookies.json

800_auto

4、运行下面的python代码即可自动发布微头条

点击查看全文

from playwright.sync_api import sync_playwright
import json
import time

def run(website_url):
    with sync_playwright() as p:
        # 启动浏览器上下文
        context = p.chromium.launch_persistent_context(
            user_data_dir="./chrome-data",  # 指定用户数据目录
            headless=False  # 设置为False以便查看浏览器操作
        )
        
        # 加载cookie文件
        try:
            with open("cookies.json", "r") as f:
                cookies = json.load(f)
                # 确保每个cookie都有正确的sameSite属性
                for cookie in cookies:
                    if 'sameSite' not in cookie or cookie['sameSite'] not in ['Strict', 'Lax', 'None']:
                        cookie['sameSite'] = 'Lax'  # 默认设置为Lax
                # 在上下文中添加cookie
                context.add_cookies(cookies)
                print("Cookie加载成功")
        except Exception as e:
            print(f"加载Cookie失败: {e}")
        
        # 打开新页面
        page = context.new_page()
        
        # 导航到目标网站
        page.goto(website_url)
        
        # 等待页面加载完成
        page.wait_for_load_state("networkidle")
        
        # 刷新页面以应用cookie
        page.reload()
        page.wait_for_load_state("networkidle")
        
        # 等待编辑器加载
        page.wait_for_selector("div.syl-editor div.ProseMirror", state="visible")
        
        # 清空编辑器内容并填写新内容
        editor = page.locator("div.syl-editor div.ProseMirror")
        
        # 清空编辑器内容
        editor.evaluate("el => el.innerHTML = ''")
        
        # 填写内容
        content_to_fill = "这是自动填写的内容"
        editor.type(content_to_fill)
        
        # 等待内容填写完成
        time.sleep(1)
        
        # 点击发布按钮
        publish_button = page.locator("button.publish-content")
        publish_button.click()
        
        # 等待发布完成
        time.sleep(3)
        
        # 关闭浏览器上下文
        context.close()
        
        print("表单填写并发布成功")

if __name__ == "__main__":
    # 替换为你的目标网站URL
    target_url = "https://mp.toutiao.com/profile_v4/weitoutiao/publish?from=toutiao_pc"
    run(target_url)

网友回复

我知道答案,我要回答