我们以头条为例,利用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)					网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			