我们以头条为例,利用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) 网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


