做网站的接口是意思企业建设门户网站成本如何

diannao/2026/1/17 16:51:32/文章来源:
做网站的接口是意思,企业建设门户网站成本如何,微信怎样开公众号,如何快速创建网站7.5. 配图生成 目的#xff1a;由于小红书发布文章要求图文格式#xff0c;因此在生成文案的基础上#xff0c;我们还需要生成图文搭配文案进行发布。 原实现思路#xff1a; 起初我打算使用deepseek的文生图模型Janus进行本地部署生成#xff0c;参考博客#xff1a;De…7.5. 配图生成 目的由于小红书发布文章要求图文格式因此在生成文案的基础上我们还需要生成图文搭配文案进行发布。 原实现思路 起初我打算使用deepseek的文生图模型Janus进行本地部署生成参考博客Deepseek发布的Janus-Pro-1B初体验但后来尝试使用后发现Janus现阶段对于这类特定任务的生成图还不太能够胜任。以下是我尝试使用文案让Janus生成的图片 现实现思路 当下普遍的方案是使用文案生成一段相关的html代码再使用python中的自动化库来进行相应部分的截图最后将截图与文案进行组合形成图文格式。 代码实现 html生成 Author: yeffky Date: 2025-02-14 08:43:28 LastEditTime: 2025-02-15 19:28:28import requests import json import os from datetime import datetime def build_prompt(drafts):prompt 根据下面的小红书文案帮我生成一个html页面包含小红书的封面需要一个卡片状的封面上面只需文案内容即可需要吸引眼球以及下方几个要点内容要点内容和封面我希望制作成卡片形式并且每一部分的div请为我附上属性idid为card1, card2, ...。要求符合小红书平台的图文要求规则以及平替风格还要符合小红书平台的用户审美。回复只要给出代码即可请不要添加多余表达 return f{prompt} \n\n小红书文案\n\n{drafts}def get_deepseek_response(prompt, api_key):url https://api.deepseek.com/chat/completionsheaders {Authorization: fBearer {api_key},Content-Type: application/json,Accept: application/json,}payload json.dumps({messages: [{content: prompt,role: user}],model: deepseek-reasoner,frequency_penalty: 0,max_tokens: 2048,presence_penalty: 0,response_format: {type: text},stop: None,stream: False,stream_options: None,temperature: 1,top_p: 1,tools: None,tool_choice: none,logprobs: False,top_logprobs: None})response Nonewhile not response:try:print(发送请求)response requests.post(url, datapayload, headersheaders, timeout200)response.raise_for_status()if not response.json():response Noneexcept requests.exceptions.RequestException as e:print(f请求失败{str(e)}开始重试...)response Nonereturn response.json()[choices][0][message][content]def generate_html():api_key os.getenv(DEEPSEEK_API_KEY)today datetime.now().strftime(%Y-%m-%d)file_path ./xiaohongshu_drafts/小红书_推广文案_千战系列 today .txtdrafts open(file_path, r, encodingutf-8).read()prompt build_prompt(draftsdrafts)response get_deepseek_response(prompt, api_key)print(response)with open(./pic_generate/pic.html, w, encodingutf-8) as f:f.write(response)截图 Author: yeffky Date: 2025-02-14 09:41:09 LastEditTime: 2025-02-15 10:44:51from playwright.sync_api import sync_playwright import time import redef generate_pic(url):# 启动浏览器player sync_playwright().start() # 初始化Playwright并启动chrome_driver player.chromium # 获取Chromium浏览器实例browser chrome_driver.launch(headlessFalse) # 启动浏览器headlessFalse表示以非无头模式启动即显示浏览器窗口context browser.new_context() # 创建一个新的浏览器上下文类似于一个新的浏览器窗口page context.new_page() # 在该上下文中创建一个新的页面标签页# 访问页面card_cnt 0with(open(./pic_generate/pic.html, r, encodingutf-8)) as f:page_content f.read()card_cnt len(re.findall(rdiv classcard idcard\d, page_content))print(card_cnt)page.goto(url) # 导航到指定的URL# 截取相关卡片的截图for i in range(1, card_cnt 1):card_pic page.query_selector(fidcard{i}) # 使用CSS选择器查找页面中的搜索按钮元素card_pic.screenshot(pathf./pictures/card{i}.png) # 对搜索按钮元素进行截图并保存为b.png# 停止访问context.close() # 关闭浏览器上下文browser.close() # 关闭浏览器player.stop() # 停止Playwrightif __name__ __main__:url D:/Project/UUCrawl/Code/pic_generate/pic.htmlgenerate_pic(url)7.6. 自动化发布 目的将生成的图片和文案自动发布到小红书实现思路 1.使用python中的selenium库模拟页面操作登陆后需要将cookie保存下来下次使用时直接读取cookie避免重复登陆。同时保存一份token每次调用登录时检查token是否过期如未过期则无需登录操作。2.登录后模拟页面操作前往发布页面使用send_keys()方法输入标题和正文使用click()方法点击发布按钮。参考开源项目xhs_ai_publisher 代码实现 Author: yeffky Date: 2025-02-15 20:28:32 LastEditTime: 2025-02-17 14:08:45import sys sys.path.append(./) from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys from utils import line_process import time import json import osclass XiaohongshuClient:def __init__(self):self.driver webdriver.Chrome()self.wait WebDriverWait(self.driver, 10)# 获取当前执行文件所在目录current_dir os.path.dirname(os.path.abspath(__file__))self.token_file os.path.join(current_dir, xiaohongshu_token.json)self.cookies_file os.path.join(current_dir, xiaohongshu_cookies.json)self.token self._load_token()self._load_cookies()def _load_token(self):从文件加载tokenif os.path.exists(self.token_file):try:with open(self.token_file, r) as f:token_data json.load(f)# 检查token是否过期if token_data.get(expire_time, 0) time.time():return token_data.get(token)except:passreturn Nonedef _save_token(self, token):保存token到文件token_data {token: token,# token有效期设为30天expire_time: time.time() 30 * 24 * 3600}with open(self.token_file, w) as f:json.dump(token_data, f)def _load_cookies(self):从文件加载cookiesif os.path.exists(self.cookies_file):try:with open(self.cookies_file, r) as f:cookies json.load(f)self.driver.get(https://creator.xiaohongshu.com)for cookie in cookies:self.driver.add_cookie(cookie)except:passdef _save_cookies(self):保存cookies到文件cookies self.driver.get_cookies()with open(self.cookies_file, w) as f:json.dump(cookies, f)def login(self, phone, country_code86):登录小红书# 如果token有效则直接返回if self.token:return# 尝试加载cookies进行登录self.driver.get(https://creator.xiaohongshu.com/login)self._load_cookies()self.driver.refresh()time.sleep(3)# 检查是否已经登录if self.driver.current_url ! https://creator.xiaohongshu.com/login:print(使用cookies登录成功)self.token self._load_token()self._save_cookies()time.sleep(2)returnelse:# 清理无效的cookiesself.driver.delete_all_cookies()print(无效的cookies已清理)# 如果cookies登录失败则进行手动登录self.driver.get(https://creator.xiaohongshu.com/login)# 等待登录页面加载完成time.sleep(5)# 点击国家区号输入框country_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, input[placeholder请选择选项])))country_input.click()time.sleep(5)# 等待区号列表出现并点击886# 等待区号列表出现并点击86try:self.driver.find_element(By.XPATH, /html/body/div[1]/div/div/div/div[2]/div[1]/div[2]/div/div/div/div/div/div[2]/div[1]/div[1]/div/div/div[1]/input).click()time.sleep(3)self.driver.find_element(By.XPATH, /html/body/div[1]/div/div/div/div[2]/div[1]/div[2]/div/div/div/div/div/div[2]/div[1]/div[1]/div/div/div[1]/input).send_keys(country_code)time.sleep(3)# self.driver.find_element(By.XPATH, /html/body/div[6]/div/div).click()# china_option self.wait.until(EC.element_to_be_clickable((By.XPATH, //div[contains(class, css-cqcgee)]//div[contains(text(), 86)])))time.sleep(5)except Exception as e:print(无法找到国家区号选项)print(e)# 定位手机号输入框phone_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, input[placeholder手机号])))phone_input.clear()phone_input.send_keys(phone)# 点击发送验证码按钮try:send_code_btn self.wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, .css-uyobdj)))send_code_btn.click()except:# 尝试其他可能的选择器try:send_code_btn self.wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, .css-1vfl29))) send_code_btn.click()except:try:send_code_btn self.wait.until(EC.element_to_be_clickable((By.XPATH, //button[contains(text(),发送验证码)])))send_code_btn.click()except:print(无法找到发送验证码按钮)# 输入验证码verification_code input(请输入验证码: )code_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, input[placeholder验证码])))code_input.clear()code_input.send_keys(verification_code)# 点击登录按钮login_button self.wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, .beer-login-btn)))login_button.click()# 等待登录成功,获取tokentime.sleep(3)# 保存cookiesself._save_cookies()# 关闭浏览器# self.driver.quit()# print(f获取到的token: {token})# if token:# self._save_token(token)# self.token token# else:# print(未能获取到token)def post_article(self, title, content, imagesNone):发布文章Args:title: 文章标题content: 文章内容images: 图片路径列表# 如果token失效则重新登录# 设置token# self.driver.execute_script(flocalStorage.setItem(token, {self.token}))time.sleep(3)print(点击发布按钮)# 点击发布按钮publish_btn self.wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, .btn.el-tooltip__trigger.el-tooltip__trigger)))publish_btn.click()# 如果是发布视频则不操作这一步# 切换到上传图文time.sleep(3)tabs self.driver.find_elements(By.CSS_SELECTOR, .creator-tab)if len(tabs) 1:tabs[1].click()time.sleep(3)# # 输入标题和内容# title_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .title-input)))# content_input self.driver.find_element(By.CSS_SELECTOR, .content-input)# title_input.send_keys(title)# content_input.send_keys(content)# 上传图片if images:upload_input self.driver.find_element(By.CSS_SELECTOR,input[typefile])# 将所有图片路径用\n连接成一个字符串一次性上传upload_input.send_keys(\n.join(images))time.sleep(1)time.sleep(3)JS_ADD_TEXT_TO_INPUT var elm arguments[0], txt arguments[1];elm.value txt;elm.dispatchEvent(new Event(change));title_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .d-text)))self.driver.execute_script(JS_ADD_TEXT_TO_INPUT, title_input, title)# title_input.send_keys(title)# Start of Selection# Start of Selectionprint(content)JS_ADD_TEXT_TO_P var elm arguments[0], txt arguments[1];elm.textContent txt;content_input self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .ql-editor)))p_element content_input.find_element(By.CSS_SELECTOR, p)print(p_element)self.driver.execute_script(JS_ADD_TEXT_TO_P, p_element, content)# content_input.send_keys(123)# 发布time.sleep(600)submit_btn self.driver.find_element(By.CSS_SELECTOR, .el-button.publishBtn)submit_btn.click()def close(self):关闭浏览器self.driver.quit()def post_article():poster XiaohongshuClient()phone open(./docs/phone.txt).read()poster.login(phone)print(登录成功)print(开始发布文章)print(os.getcwd())title open(./xiaohongshu_drafts/小红书_推广文案_千战系列2025-02-15.txt, r, encodingutf-8).readline()article line_process.get_article(./xiaohongshu_drafts/小红书_推广文案_千战系列2025-02-15.txt)print(article)images os.listdir(./pictures)images map(lambda x: os.path.join(rD:\Project\UUCrawl\Code\pictures, x), images)poster.post_article(title, article, images)poster.close()7.7. 主程序 from crawler import ip_crawler, data_crawler from analysis import data_analysis from pic_generate import pic_generate, html_generate from post import xiaohongshu_post import file_handlerif __name__ __main__:url D:/Project/UUCrawl/Code/pic_generate/pic.html# 获取IPip ip_crawler.crawl_ip()# 获取数据data data_crawler.crawl_data()# 数据分析data_analysis.analysis_data()file_handler.start_observer()# 生成htmlhtml_generate.generate_html()# 生成图片pic_generate.generate_pic(url)# 发布小红书xiaohongshu_post.post_article()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何 网站收录网站设计的公司

1.切片: 切片是编程语言为有序序列(sequence)准备的,用来切割或者截取某个片段 一个完整的切片是包含三个参数和两个冒号" : " ,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第…

柳州学校网站建设深圳谷歌优化seo

Qt5core.dll是Qt5框架的核心模块,用于提供基本的Qt功能。如果在代码执行过程中找不到qt5core.dll,可能导致相关功能无法正常使用。以下是五种详细解决方法、qt5core.dll文件详细介绍以及丢失原因。 一、qt5core.dll文件详细介绍 文件名称:q…

免费论文网站大全微信小程序制作宣传图册

来源:AI前线作者:Eliza Strickland译者:平川策划:凌敏本文最初发布于 IEEE Spectrum。吴恩达在人工智能领域可谓声名显赫。2000 年底,他与斯坦福大学的学生一起开创了使用图形处理单元(GPU)训练…

网站图标在哪里做修改怎么做动画图片文字的网站

api自动化在这篇文章中,我们将撰写一篇综合文章,内容涉及如何在不增加人员的情况下自动执行API安全程序。 在现代世界中,数据对于提供者和消费者都至关重要。 数据科学的出现证明了这一事实。 对于某些组织,整个业务模型是建立在信…

唯品会一家专门做特卖的网站手机版中国十大装修公司品牌排行榜

协方差矩阵协方差矩阵(从随机变量讲起)随机变量x:表示随机试验各种结果的 实值 单值函数,就是说随机变量x是一个函数映射,其取值为标量。随机变量有离散型和连续型,离散型:抛10次硬币&#xff…

网站的充值是怎么做的宣传画册设计

一、OpenFeign基础应用 1.1 概念 OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访…

浦口区网站建设售后服务企业微信公众号注册平台官网

XSY3381 点被选为点对之一的贡献我们单独计算(这部分贡献的总和为4n(n−1)(n−2)4n(n-1)(n-2)4n(n−1)(n−2))。接下来只讨论剩余部分的贡献。 先把任意三个点构成的六种选择方案合并,发现在外接圆周和弦之间的点每个有2的贡献,…

宁波网站制作工作室wordpress 网页很慢

最近受到商汤“复活”汤晓鸥的视频刺激,大大的amazing!没看过的小伙伴可以自行百度,看了不研究一下【数字人】技术,都要跟时代脱轨了,那就以HyperLips为开篇吧。 目录 🍎🍎1.摘要 &#x1f3…

wordpress实现专题手机网站seo免费软件

使用ros带的rosversion命令即可查看自己的ros版本: rosversion -d

哈尔滨建站免费模板怎么做一个购物平台

Linux的组成部分是什么? Linux 是一个开源的操作系统内核,它是一个底层的软件,可以作为操作系统的核心来运行。除了内核之外,Linux 操作系统通常还包括以下组成部分: 1. Shell:Shell 是用户与操作系统进行交…

wordpress关闭多站点贵州毕节建设局网站官网

跟着施磊老师做C项目,施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理…

国际网站 建设小程序商店怎么注销

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

电商网站 支付宝接口注册代理公司

线程构造器结构 1.线程中的构造器可以使用很多参数 public thread():分配一个新的线程对象public Thread(String name):分配一个指定名字的线程对象public Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口…

优秀电子商务网站免费空间清理软件

软件介绍 QGIS(Quantum GIS)是一款免费、开源、跨平台的地理信息系统(GIS)软件,适用于Unix平台、Windows和MacOS。提供了强大且用户友好的功能,使其成为地理信息处理领域的热门选择。 功能特点 1.空间数据管…

公众号发布的文章是wordpressseo高清视频教程

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS(即支持SSL的HTTP协议)的远程安全接入技术。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制&#…

青岛网站建设公司怎么样搭建网站费用

1.字符串的长度 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2 "asdfzcxfv"; // 1.字符串的长度 console.log(str1.length);2. charAt() : 返回指定索引位置的字符 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2…

公司门户网站建设品牌推广策略有哪几种

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 约束概述二. 约束演示三. 外键约束3.1 介绍3.2 语法3.3 删除/更新行为 &…

网文网站开发方案中国建设银行官网站保本理财

主要实现了两个小游戏,飞机大战和冰火人历险记,首先用Funcode生成地图文件和VS工程,然后进行编程 头文件 CommonAPI.h #ifndef _COMMON_API_H_ #define _COMMON_API_H_ // #include <windows.h>//===============================

p2p贷款网站开发app系统制作开发

要做到单井的分采分注&#xff0c;首先必须有一种井下工具将各油层分开。封隔器就是下人套管内&#xff0c;利用其弹性密封元件的变形来封隔油、气、水层的一种最重要的井下工具。封隔器接在油管柱的适当部位或下部&#xff0c;这种带封隔器和其他井下工具的油管柱叫做井下工艺…

如何申请网站优化工作找人做网赌网站需要多少钱

随着工业4.0的深入推进和智能制造的快速发展&#xff0c;复合机器人作为一种集成移动机器人和工业机器人功能的先进设备&#xff0c;正逐步成为工业自动化领域的新宠。特别是在磁钢上下料的应用中&#xff0c;复合机器人以其高度的灵活性和操作效率&#xff0c;展现了显著的优势…