基于selenium设计GPT自动写微博发微博的Python脚本
大约 3 分钟
基于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与您的浏览器版本兼容。
现在,您可以开始使用这个脚本来自动生成并发布微博内容了。记得在实际部署之前,先在本地环境中进行充分的测试。