由于用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