我们以头条为例,利用Playwright加载头条的登录cookie,然后自动发布微头条,下面是测试结果
1、先在chrome中安装一个获取浏览器cookie的chrome插件
3、chrome登录头条后,点击插件获取cookie保存到本地cookies.json
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)
网友回复