C# seo测试小工具1:同时更新多网站的博客(csdn,cnblogs,163,sina)

news/2024/5/13 11:57:14/文章来源:https://blog.csdn.net/weixin_34290352/article/details/94261671

  这几天我一个朋友在学seo,老师要求学生们同时发表一篇博客来测试百度的排名系统。所以就有了这个小程序,给同样有这方面需求的朋友们一个参考,下面介绍一下实现方法。

国内的这几个网站都实现了国际通用的博客api:MetaWeblog。通过网上提供的封装好的dll,使用非常方便,dll下载地址:

http://joeblogs.codeplex.com/releases/view/29856

下面的链接是dll的安装说明,可以看这个,我就不作介绍了:

http://www.alexjamesbrown.com/geek/development/dotnet/using-joeblogs/

还有就是想对MetaWeblog使用的XML-RPC规范有进一步了解的可以看这个文档:

http://www.duduwolf.com/post/41.asp

我也在学习中,有什么问题或者疑问欢迎提出,共同学习!

上次忘了把配置文件的格式说明一下了:

webSite&username&password    //webSite就是你的账号属于哪个网站,WebSite 的名字要和wKtoDczzpHJxQAAAABJRU5ErkJggg==的名字一样。每个这样的数据占一行。

  还有很多其它网站也实现了该接口,我这里就不写了,都一样。下面介绍实现方法。

dll的调用方法:

using AlexJamesBrown.JoeBlogs; //调用dll
MetaWeblogWrapper mw = new MetaWeblogWrapper(url, username, passwd); //url是网站提供的api接口,username为博客用户名,passwd是密码。
AlexJamesBrown.JoeBlogs.Structs.Post m = new AlexJamesBrown.JoeBlogs.Structs.Post(); // 实例化这个类来存储博客内容。
m.description = txt_content.Text;   //博客的正文。
m.title = txt_title.Text.Trim();  //博客的标题。
m.categories = new string[] { "seo" };  //博客的分类,标签,163的貌似一定要给这个赋值,不然会出错。
m.dateCreated = System.DateTime.Now;  //博客的时间
var userBlogs = mw.NewPost(m, true);  //发送博客,并返回一些数据。
 

界面截图:

4T8fpuY32uzAAAAAElFTkSuQmCC

using:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using AlexJamesBrown.JoeBlogs; //调用dll
using System.Threading;

需要用到的变量:

private string[,] userInfo=new string[200,3]; //保存用户所属网站,用户名,用户密码的2维数组。
private int userNum = -1; //保存配置从文件读取用户的总数。
private int finshedNum = -1; //保存已经发布成功博客的数目。

读取配置文件,根据uvkMnKnHIoQAAAABJRU5ErkJggg==是否勾选来判断是否要读取响应网站的账号:

//读取配置文件。
private void btn_readIni_Click(object sender, EventArgs e)
{
List
<CheckBox> ckbs = new List<CheckBox> { ckb_cnblogs,ckb_csdn,ckb_sina,ckb_sohu,ckb_163};
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
txt_filePath.Text
= openFileDialog1.FileName;
FileStream fs
= new FileStream(txt_filePath.Text, FileMode.Open, FileAccess.Read);
StreamReader sr
= new StreamReader(fs);
int y = -1;
for (int x = 0; x < 200; x++)
{
string str = sr.ReadLine();
if (str == null)
break;
if (str == "")
continue;
string[] strArr = str.Split('&');
var tmpLabel
= ckbs.Find(Text =>
{
if (Text.Text.Trim() == strArr[0].Trim())
return true;
else
return false;
}
);
if (tmpLabel.Checked)
{
y
++;
userInfo[y,
0] = strArr[0].Trim();
userInfo[y,
1] = strArr[1].Trim();
userInfo[y,
2] = strArr[2].Trim();
userNum
++;
}
}
sr.Close();
fs.Close();
lb_status.Text
= "配置文件读取完成。";
}
catch (Exception ex)
{
MessageBox.Show(
"配置文件格式有问题!"+ex.Message);
}
}
}

发布博客,为了提高效率,每个账号发表博客都是单独一个线程,相互不影响:

//发表博客。
private void btn_send_Click(object sender, EventArgs e)
{
for (int x = 0; x <= userNum; x++)
{
btn_readIni.Enabled
= false;
btn_send.Enabled
= false;
userObj tmpObj
= new userObj();
tmpObj.webSite
= userInfo[x, 0];
tmpObj.username
= userInfo[x, 1];
tmpObj.passwd
= userInfo[x, 2];
Thread sendBlogsThread
= new Thread(new ParameterizedThreadStart(sendBlogs)); //每个账号启用一个线程。
sendBlogsThread.Start(tmpObj);
}
}

//
private void sendBlogs(object obj)
{
Thread.CurrentThread.IsBackground
= true;
Control.CheckForIllegalCrossThreadCalls
= false;
userObj user
= (userObj)obj;
string webSite = user.webSite;
string username = user.username;
string passwd = user.passwd;
string url = "" ;
switch (webSite)
{
case "sina":
url
="http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php".Trim();
break;
case "sohu":
break;
case "csdn":
url
= "http://blog.csdn.net/"+username+"/services/metablogapi.aspx";
break;
case "cnblogs":
url
= "http://"+username+".cnblogs.com/services/metaweblog.aspx".Trim();
break;
case "163":
url
= "http://os.blog.163.com/api/xmlrpc/metaweblog/".Trim();
break;
}
try
{
MetaWeblogWrapper mw
= new MetaWeblogWrapper(url, username, passwd);
AlexJamesBrown.JoeBlogs.Structs.Post m
= new AlexJamesBrown.JoeBlogs.Structs.Post();
m.description
= txt_content.Text;
m.title
= txt_title.Text.Trim();
m.categories
= new string[] { "seo" };
m.dateCreated
= System.DateTime.Now;
var userBlogs
= mw.NewPost(m, true);
finshedNum
++;
lb_status.Text
= finshedNum.ToString() + "/" + userNum.ToString();
if (finshedNum == userNum)
{
btn_readIni.Enabled
= true;
btn_send.Enabled
= true;
lb_status.Text
= lb_status.Text + " 上传完成!";
}
}
catch (Exception ex)
{
MessageBox.Show(
"调用博客接口出错:"+ex.Message);
}
}
}

//用于启动时线程传参。
class userObj
{
public string webSite;
public string username;
public string passwd;
}

转载于:https://www.cnblogs.com/fmnisme/archive/2011/05/27/2060365.html

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

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

相关文章

建站手册-浏览器信息:Internet Explorer 浏览器

ylbtech-建站手册-浏览器信息&#xff1a;Internet Explorer 浏览器1.返回顶部 1、http://www.w3school.com.cn/browsers/browsers_internetexplorer.asp2、Internet Explorer 是目前使用最为广泛的因特网浏览器。 Internet Explorer 8 2009 年 3 月 19 日&#xff0c;微软发布…

做网站用UTF-8还是GB2312?

2019独角兽企业重金招聘Python工程师标准>>> 经常我们打开外国网站的时候出现乱码&#xff0c;又或者打开很多非英语的外国网站的时候&#xff0c;显示的都是口口口口口的字符&#xff0c; WordPress程序是用的UTF-8&#xff0c;很多cms用的是GB2312。 ● 为什么有这…

dedecms 后台网站 标题设置

打开文件夹&#xff0c;找到dede/templets/index2.htm&#xff0c;修改第6行就行了 转载于:https://www.cnblogs.com/moguzi12345/p/8124087.html

国内某知名婚恋网站的Kubernetes落地实践

随着Kubernetes的遍地开花&#xff0c;Kubernetes的优势可以说是深入人心&#xff0c;所以&#xff0c;我们也掀起了一场改革&#xff0c;目的就是改变我们以往的运维模式&#xff0c;利用Kubernetes&#xff0c;来实现更高效的交付和更好地提高我们的资源使用率&#xff0c;推…

网站基本标签及css样式简介(3)

CSS层叠样式&#xff1a;一.内部样式表1).行内样式<td style"font-size:30px;">封面回顾</td>...td为行级标签&#xff0c;其他还有&#xff1a;按钮、输入框&#xff0c;范围、图像、超链接、换行标签2).嵌入样式(在<head>标签中实现)<style t…

在Kubernetes中部署网站的综合指南

最近&#xff0c;我们做了一个把Grofers的所有服务迁移到Kubernetes上的决定。Grofers是杂货领域印度最大的低价在线超市&#xff0c;成立于2013年12月01日&#xff0c;由Albinder Dhindsa和Saurabh Kumar创立&#xff0c;总部位于印度德里的卫星城市Gurugram。其主要提供各种类…

教你用 Docker 搭建网站

2013 年发布至今&#xff0c; Docker 一直广受瞩目&#xff0c;被认为可能会改变软件行业。但是&#xff0c;许多人并不清楚 Docker 到底是什么&#xff0c;要解决什么问题&#xff0c;好处又在哪里&#xff1f;本文就来详细解释&#xff0c;帮助大家理解它&#xff0c;还带有简…

网站标题前的小logo

原因&#xff1a;每个浏览器访问服务器的时候会自动发送一个GET 请求&#xff0c;地址是&#xff1a;/favicon.ico 如果不处理&#xff0c;则只会在浏览器标题前添加一个文本类的图标 前提&#xff1a;有现有的图标favicon.ico&#xff0c;且按开发规范存放在static/img/下 解…

ASP.NET 网站路径

使用网站中的资源时&#xff0c;通常必须指定资源的路径。例如&#xff0c;您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。同样&#xff0c;Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。ASP.NET 提供用于引用资…

帅的一坨,不转不行。优雅实用web标准网站设计欣赏

文章来源于我非常喜爱的Smashing Magazine。网站不支持图片外链接&#xff0c;如果看不到图片请访问原文地址&#xff1a;http://www.smashingmagazine.com/2007/07/04/inspiration-package-usable-elegant-inspiring-design-showcase/以下是原文&#xff1a; Inspiration Pack…

js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航

对于脚本来说&#xff0c;最复杂的表单元素对象就是select了&#xff0c;他是一个复合对象&#xff0c;包含OPTION对象数组的对象 演示一&#xff1a;导航,这个多见于网站友情链接 请选择您要去的网站天轰穿系列教程博客园CSDN演示二&#xff1a;地区二级无刷新联动菜单&#x…

关系网成网络盈利模式 LinkedIn网站探秘

“人传人”的创业群体 2003年&#xff0c;从加州大学伯克利分校经济系毕业后&#xff0c;林文文开始了在加州联合银行的工作。今年7月&#xff0c;她决定转行做市场营销&#xff0c;然而由于缺乏相关的工作经验&#xff0c;她在几大求职网站上投的简历最终都石沉大海。 后来&am…

关于网站登录后的页面操作所携带的不同cookie值

对于课堂派网站,登录后的页面操作只需要携带PHPSESSID或者cookie中间那部分即可,两个都带也可,SERVERID不知道是干啥的,每次响应的都会变. 代码实现: cookie None class HttpRequest:def __init__(self,method,url,dataNone):self.methodmethodself.urlurlself.datadata# def …

新辰:共享是SEO的思维 用户是SEO的核心

大家都知道。SEO一直没有一个能够定义的核心。新辰知道全部的东西里面在互联网领域链接是非常重要的。所以新辰觉得做SEO就是把链接做好。因此&#xff0c;链接对于一个站点来说简单分能够分成两种。内部的链接和外部的链接。故内链和外链出来了。对于互联网来说。外链的作用比…

SSM重新开发计科院新闻网站

SSM重新开发计科院新闻网站 学号&#xff1a;201631062509 姓名&#xff1a;杨菓 1.什么是SSM SSM就是SpringSpringMVCMyBatis框架的整合。 1.1 Spring Spring是一个开源框架&#xff0c;Spring是于2003 年兴起的一个轻量级的Java 开发框架&#xff0c;由Rod Johnson 在其著作…

Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息

1. 任务描述目标网站:http://www.mininova.org/yesterday/ 目标网站截图&#xff1a;-------------------------------------可以看到种子文件的列表&#xff0c;这些链接的url可以用正则表达式表示为&#xff1a; /tor/\d随便点一个进去&#xff0c;进入资源详情页&#xff1a…

教育局机关局域网站点上网指南

教育局机关局域网站点上网指南 1.什么是站点上网零维护&#xff1f;我们能实现这个目标吗? 站点上网零维护最少包括如下4个方面的因素&#xff1a;①机房无需人员值守&#xff1b;②上网线路和设备稳定畅通&#xff1b;③每个站点无需进行任何设置&#xff1b;④站点使用人员懂…

通过华为云搭建一个属于自己的小网站

出于个人兴趣&#xff0c;想搭建一个自己的网站玩玩。 先在华为云买个云服务器&#xff0c;由于是第一次玩&#xff0c;先买个windows server 2019版的&#xff0c;2核4G&#xff0c;以后弄熟了再上手linux吧。、 经过重置密码&#xff0c;设置安全组等简单配置后登录服务器主机…

微软发布IIS漏洞补丁,影响我国五分之一网站

2015年4月14日&#xff0c;微软发布月度例行安全公告&#xff0c;共释放出11项更新&#xff0c;一举修复包括Windows操作系统、IE浏览器、Office办公软件、.NET Framework、Server软件、Office Services和Web Apps在内的26个安全漏洞。在这11项更新中&#xff0c;有4项更新综合…

SEO的艺术(原书第2版)

《SEO的艺术(原书第2版)》基本信息原书名&#xff1a;The Art of SEO, Second Edition作者&#xff1a; Eric Enge Stephan Spencer Jessie Stricchiola Rand Fishkin译者&#xff1a; 姚军丛书名&#xff1a; O’Reilly精品图书系列出版社&#xff1a;机械工业出版社ISBN&…