由于用chatgpt采集了一堆数据,想要发到网站上。下面提出两种方法,各有优缺点,请各取所需。
发邮件的方式
一、首先需要安装插件Jetpack,这个插件有个功能就是通过发邮件到某个邮箱实现发贴功能。生成一个独一无二的邮箱,发邮件即为发文章。


二、发采集数据到wordpress也就转换成了发文章到邮箱的问题了,这个使用chatgpt直接辅助编程即可,基本上30分钟内可以搞定。使用chatgpt可以选择python、PHP等任意语言,我自己对C#比较熟悉,就选这个了。通过这种方法也可附加PDF或图像,也可以设定文章分类、状态、发贴人等信息,具体详见https://jetpack.com/support/post-by-email/?site=xycost.com。需要者可联系站长提供源码。
private void button2_Click(object sender, EventArgs e) { string csvFilePath = "search_results.csv"; string recipientEmail = "xycostremu@post.wordpress.com";//上面jetpack生成的邮箱 string senderEmail = "xycost1221@163.com"; string senderPassword = "ULPYZQRJGEZOCYFX";//注意是授权码不是邮箱密码 try { using (StreamReader reader = new StreamReader(csvFilePath)) { string line; reader.ReadLine(); while ((line = reader.ReadLine()) != null) { string[] data = line.Split(','); // 提取CSV行中的数据 string title = data[0]; string link = data[1]; string description = data[2]; string content = data[2]; // 发送邮件 SendEmail(senderEmail, senderPassword, recipientEmail, title, link, description, content); } } Console.WriteLine("邮件发送完成!"); } catch (Exception ex) { Console.WriteLine($"发送邮件时发生错误:{ex.Message}"); } }
static void SendEmail(string senderEmail, string senderPassword, string recipientEmail, string title, string link, string description, string content) { try { MailMessage mail = new MailMessage(); SmtpClient client = new SmtpClient("smtp.163.com", 25); // 163邮箱的SMTP服务器地址和端口号,也可使用QQ邮箱 mail.From = new MailAddress(senderEmail); mail.To.Add(recipientEmail); mail.Subject = title; mail.Body = $"Content: {content}";//Link: {link}\nDescription: {description}\n,可按自己要求的格式订制。 mail.BodyEncoding = Encoding.UTF8; //设置为HTML格式 mail.IsBodyHtml = true; //优先级 mail.Priority = MailPriority.Low; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(senderEmail, senderPassword); client.Send(mail); } catch (Exception ex) { Console.WriteLine($"发送邮件时发生错误:{ex.Message}"); } }
使用网站原生REST API
如果要使用RESTAPI发表文章,经过试验后以下方法可用。
string apiUrl = "https://xycost.com";
// Your WordPress username and password
string username = "你的用户名";
string password = "你的密码";
WordPressApiClient wpApiClient = new WordPressApiClient(apiUrl, username, password);
await wpApiClient.CreatePost(title, content);
public class WordPressApiClient
{
private string baseUrl;
private string username;
private string password;
public WordPressApiClient(string baseUrl, string username, string password)
{
this.baseUrl = baseUrl;
this.username = username;
this.password = password;
}
public async Task<string> CreatePost(string title, string content)
{
// 构造表单数据
var formData = new Dictionary<string, string>
{
{ "title", title },
{ "content", content }
// 可添加其他表单数据字段...
};
using (HttpClient httpClient = new HttpClient())
{
try
{
// 设置基本认证头部
var byteArray = Encoding.ASCII.GetBytes($"{username}:{password}");
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
// 发送 POST 请求,并将表单数据作为请求体发送
HttpResponseMessage response = await httpClient.PostAsync($"{baseUrl}/wp-json/wp/v2/posts", new FormUrlEncodedContent(formData));
// 处理响应结果
if (response.IsSuccessStatusCode)
{
string responseContent = await response.Content.ReadAsStringAsync();
// 解析响应的 JSON 数据,获取文章的 ID 或其他信息
dynamic responseData = JsonConvert.DeserializeObject(responseContent);
string postId = responseData.id;
return postId;
}
else
{
// 处理请求错误
string errorMessage = await response.Content.ReadAsStringAsync();
return $"发生错误:{errorMessage}";
}
}
catch (Exception ex)
{
// 处理异常
return $"发生异常:{ex.Message}";
}
}
}
}
评论0