跳至主要內容

基于selenium设计GPT自动写微博发微博的Python脚本

sennes大约 3 分钟Artificial Intelligence

基于selenium设计GPT自动写微博发微博的Python脚本

在本文中,我们将探讨如何利用Python编程语言,结合selenium库和OpenAI的GPT模型,设计一个自动化脚本,用于生成并发布微博内容。这个脚本将帮助用户节省时间,同时保持微博内容的趣味性。

脚本必要库的pip安装流程

首先,我们需要安装一些必要的Python库。请在您的Python环境中运行以下命令来安装这些库:

pip install dotenv
pip install openai
pip install selenium
pip install pickle
pip install json

selenium的ChromeDriver下载

您还需要下载ChromeDriver,这是selenium与Chrome浏览器交互的驱动程序。您可以从以下链接下载:

创建.env文件

在您的项目目录中创建一个名为.env的文件,并添加以下内容:

OPENAI_API_KEY="xxxxxx"

请确保替换xxxxxx为您的OpenAI API密钥。

登录微博并储存登录信息

以下是一个简单的Python脚本,用于登录微博并保存登录信息(存储在weibo_cookies.pkl文件中)。

# login_weibo_with_selenium.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pickle

# 你的chromedriver的路径
chromedriver_path = './chromedriver'

# 创建WebDriver对象
service = Service(chromedriver_path)
driver = webdriver.Chrome(service=service)

# 手动登录微博并保存cookies
driver.get('https://weibo.com')
time.sleep(60)  # 给足够时间手动登录

# 保存cookies
pickle.dump(driver.get_cookies(), open("weibo_cookies.pkl", "wb"))

driver.quit()

脚本实现详解

接下来,我们将逐步解释如何使用以下脚本实现自动生成并发布微博的功能。

import os
from dotenv import load_dotenv
from openai import OpenAI
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
import time
import pickle
import sys
import json

# 加载环境变量
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

# 确保API密钥已设置
if api_key is None:
    sys.exit("请在.env文件中设置OPENAI_API_KEY。")

# 初始化OpenAI客户端
base_url = "https://api.link-ai.chat/v1/"
default_headers = {"x-foo": "true"}
client = OpenAI(api_key=api_key, base_url=base_url, default_headers=default_headers)

# 微博内容生成函数
def generate_weibo_post(theme):
    prompt = {
        "role": "system",
        "content": "你是一个微博机器人,需要帮助用户生成微博,有以下要求:生成的微博内容需要包含主题,且内容满300个字汉字。微博内容的语气要风趣幽默,不要使用任何emoji。不要使用markdown语法。"
    }
    messages = [prompt, {"role": "user", "content": f'帮我生成一篇300字关于"{theme}"的微博。最后需要有 #fox-gpt# 的标签。'}]
    response = client.chat.completions.create(model="gpt-4", messages=messages)
    return response.choices[0].message.content

def post_weibo_with_selenium(content):
    chromedriver_path = './chromedriver'
    service = Service(chromedriver_path)
    driver = webdriver.Chrome(service=service)

    # 主脚本逻辑
    def main():
        while True:
            theme = input("请输入需要生成的微博主题: ")
            weibo_post = generate_weibo_post(theme)
            print("生成的微博博文:")
            print(weibo_post)
            confirm = input("确认内容吗?(Y/N/R): ").strip().lower()
            if confirm == 'y':
                post_weibo_with_selenium(weibo_post)
                print("微博已发送。")
                break
            elif confirm == 'r':
                continue
            elif confirm == 'n':
                print("退出。")
                sys.exit()
            else:
                print("无效输入,请输入Y、N或R。")
                continue

    if __name__ == "__main__":
        main()

在这个脚本中,我们首先加载了环境变量,确保OpenAI API密钥已经设置。然后,我们定义了一个函数generate_weibo_post来生成微博内容,以及一个函数post_weibo_with_selenium来发布微博。主脚本逻辑部分包含了用户交互,允许用户输入微博主题,生成内容,并确认是否发布。

请注意,为了保护您的隐私和安全,您需要在.env文件中设置您的OpenAI API密钥,并确保您的ChromeDriver与您的浏览器版本兼容。

现在,您可以开始使用这个脚本来自动生成并发布微博内容了。记得在实际部署之前,先在本地环境中进行充分的测试。

上次编辑于:
贡献者: sennes