SEO(Business)

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace goggb
{
class Business
{
public static CookieCollection cookies = new CookieCollection();
public static CookieContainer cookie = new CookieContainer();
private static string cookiesstr = "";
public static String token = "";
//admin888 adminadmin
//地址:
static string site = "http://admin.kuaipaitong.com";//http://kpt.ezhuoer.com
static string loginURL = site+"/go/index.php/Admin/Login/login.html";
//验证码获取地址:
static string verifyURL = site + "/go/index.php/Admin/Login/verify/";
//参数:admin_name用户名 admin_password密码verify验证码
//2、 获取任务 Get访问
static string getTaskURL = site + "/go/index.php/Admin/TaskHit/index?";//随机数
//3、 反馈结果
static string putTaskResultURL = site + "/go/index.php/Admin/TaskHit/clientinfo/?r=";

public static string ChangeImageToString(Image image)
{
try
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);

return pic;
}
catch (Exception)
{
return "Fail to change bitmap to string!";
}
}

public static Image ChangeStringToImage(string pic)
{
try
{
byte[] imageBytes = Convert.FromBase64String(pic);
//读入MemoryStream对象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//转成图片
Image image = Image.FromStream(memoryStream);

return image;
}
catch (Exception)
{
Image image = null;
return image;
}
}
public static Image getVerify()
{

try {
string tempURL = verifyURL + getRandom();
LogHelper.Info(typeof(Business), "访问图片URL" + tempURL);
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(tempURL);
myHttpWebRequest.Timeout = 20 * 1000; //连接超时
myHttpWebRequest.Accept = "*/*";
myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
myHttpWebRequest.CookieContainer = new CookieContainer(); //暂存到新实例
HttpWebResponse webResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream stream = webResponse.GetResponseStream();//获取响应流
Bitmap sourcebm = new Bitmap(stream);
webResponse.Close();
cookiesstr = myHttpWebRequest.CookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri); //把cookies转换成字符串
cookie = myHttpWebRequest.CookieContainer; //保存cookies
return sourcebm;
}catch(Exception ex){
LogHelper.Error(typeof(Business), "获取登录验证码出错。", ex);
}
return null;
}

public static string getRandom()
{
Random rd = new Random();
int temp = rd.Next();
string paramString = temp.ToString();
return paramString;
}

public static string Login(string userName, string password, string verify)
{
string paramString = "?admin_name=" + userName + "&admin_password=" + password + "&verify=" + verify;
return DoService(loginURL, paramString, Tools.getUUID());
}
/*
* Useragent必须包含:jqm=机器码(注:机器码取CPU序列号+mac地址后MD5,小写)
* 成功:{
"id": "254",任务id
"type": "1",任务类型1:排名点击2:搜索相关3:指数下拉4:广告点击
"searchsite": "1",搜索引擎1、百度2:搜狗3:好搜4:淘宝
"keyword": "淄博丽人医院",关键词
"site": "淄博的丽人医院怎么样",任务特征,标题或url包含该信息即点击
"page": "3",最大翻页数
"sitehit": "0",深入点击次数
"
* ": "30",等待时间(进入任务网站之后随机停留时间,随机数范围 取整(等待时间/2) 到 等待时间)
"abscissa": "0",横坐标(广告点击时用到,距离任务特征的距离)
"ordinate": "0",纵坐标
"subtask": "2",智能优化(若该条数不为0,则该任务含有子任务,除了点击包含site标志外,还需点击subtasksite0,subtasksite1…)
"subtaskinfo": {
"subtasksite0": "baidu.com",
"subtaskhistoryid0": 0,子任务回馈id
"subtasksite1": "ip138.com",
"subtaskhistoryid1": 0
},
"subtask": "1",智能优化
" subtaskhistoryid ": "0",子任务回馈id
"subtaskinfo": {
"site": "baidu.com"子任务
},
"taskhistoryid": 133619,任务回馈id
"task": "ok",
"alert": "任务分配成功!"
}
失败:{
"task": "fail",
"alert": "没有可分配任务!"
}
*/
public static string getTask()
{
string tempURL = getTaskURL + getRandom();
return DoService(tempURL, "", Tools.getUUID());
}
private static string DoService(string url, string paramString, String userAgent)
{
HttpWebRequest webRequest = null;
HttpWebResponse webResponse = null;
StreamReader reader = null;
try
{
LogHelper.Info(typeof(Business), "调用UEL:" + url + paramString + "&token=" + Main.tokens);

webRequest = (HttpWebRequest)HttpWebRequest.Create(url + paramString +"&token="+Main.tokens);
webRequest.Method = "POST";
webRequest.CookieContainer = cookie;
webRequest.Headers.Add("Cookie", cookiesstr);//包含与请求或响应关联的协议标头。
if (!String.IsNullOrEmpty(userAgent))
{
webRequest.UserAgent = "jqm="+userAgent;
}
webRequest.Timeout =20000;
webResponse = (HttpWebResponse)webRequest.GetResponse();
reader = new StreamReader(webResponse.GetResponseStream(),System.Text.Encoding.UTF8);//Encoding.GetEncoding("utf-8"));
string response = reader.ReadToEnd();//获取响应,读取从头读到尾
try
{
/*在服务器端,由Json字符串转换为.net对象优先使用JsonConvert对象的DeserializeObject方法*/
JObject task = (JObject)JsonConvert.DeserializeObject(response);
string responseZw =(string)task["alert"];
LogHelper.Info(typeof(Business), "调用http返回值转换成中文。" + responseZw);
}
catch(Exception ex){
LogHelper.Error(typeof(Business), "调用http返回值转换成中文出错。" + response, ex);
}
LogHelper.Info(typeof(Business), "调用http返回值。" + response);
return response;
}
catch (Exception ex)
{
LogHelper.Error(typeof(Business), "调用远程方法出错。" + url + paramString, ex);
return "";
}
finally
{
if (webResponse != null)
{
webResponse.Close();
cookie = webRequest.CookieContainer; //保存cookies
}
if (reader != null)
{
reader.Close();
}
}
}
private static Bitmap getImage(string url)
{
HttpWebRequest webRequest = null;
HttpWebResponse webResponse = null;
StreamReader reader = null;
try
{
webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
webRequest.Method = "GET";
webRequest.CookieContainer = new CookieContainer();
webRequest.CookieContainer.Add(cookies);
webRequest.Timeout = 20000;
webResponse = (HttpWebResponse)webRequest.GetResponse();
Stream stream = webResponse.GetResponseStream();
Bitmap sourcebm = new Bitmap(stream);
cookies = webResponse.Cookies;
return sourcebm;
}
catch (WebException ex)
{
return null;
}
finally
{
if (webResponse != null)
{
webResponse.Close();
}
if (reader != null)
{
reader.Close();
}
}
}
/// <summary>
/// 将Unicode编码转换为汉字字符串
/// </summary>
/// <param name="str">Unicode编码字符串</param>
/// <returns>汉字字符串</returns>
public static string ToGB2312(string str)
{
string r = "";
MatchCollection mc = Regex.Matches(str, @"\\u([\w]{2})([\w]{2})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
byte[] bts = new byte[2];
foreach(Match m in mc )
{
bts[0] = (byte)int.Parse(m.Groups[2].Value, NumberStyles.HexNumber);
bts[1] = (byte)int.Parse(m.Groups[1].Value, NumberStyles.HexNumber);
r += Encoding.Unicode.GetString(bts);
}
return r;
}
/*
3、 反馈结果
Get请求http://kpt.ezhuoer.com/go/index.php/Admin/TaskHit/clientinfo/?r=4c0ad1a11616c7bcb31144d57838d75bb8197351ac14b77097e43862561f035007fd
Useragent必须包含:jqm=机器码(注:机器码取CPU序列号+mac地址后MD5,小写)
系统依据该特征判定是否为客户端请求,客户端请求返回json,非客户端返回html
必须带登陆成功后返回的Cookie

R参数为RC4加密,加密内容为:
id=133619&point=5&result=41&ip=127.0.0.1&error=fail
若所接受的任务包含子任务,则回馈内容应该加上以下部分:
Subid0=0&result0=41&subid1=0&result1=41 … (result0、result1为子任务排名,没有找到则为0)
Id为请求任务的回馈id
Subid子任务回馈id
Point为任务积分
Result为任务排名,0为失败,失败时需增加error参数注明失败原因
Ip为执行任务时浏览器所用ip,可以为空

成功:{
"task": "ok",
"alert": "完成任务【254】得到积分5分"
}
失败:{
"task": "fail",
"alert": "没有可分配任务!"
}
*/

//internal static string getTaskRsult(bool p1, string p2)
//{
// string url = site + "/go/index.php/Admin/TaskHit/clientinfo/?r=";
// string paramString="id="+p2+"&point=5&result=41&ip=127.0.0.1&error="+p1;
// String userAgent = "";
// DoService( url, paramString, userAgent);
// return "";
//}
public static string putTaskResult(string id, string point, string result,string error)
{
string r = "";
if (!error.Equals("") || result =="0")
{
error = "没有可分配任务";
r = @"id=" + id + "&point=" + point + "&result=" + result + "&ip=&error=" + error;
}
else
{
r = @"id=" + id + "&point=" + point + "&result=" + result + "&ip=&error=" + "任务完成!";
}
LogHelper.Info(typeof(Business), "提交任務前字符:" + r);
byte[] rByte = Encoding.UTF8.GetBytes(r);
RC4Crypto rc4 = new RC4Crypto();
byte[] byteArray = rc4.EncryptEx(rByte, "zdthnjikl");
string rTemp = ToHexString(byteArray);

LogHelper.Info(typeof(Business), "提交任务加密字符:" + rTemp);
string userAgent = Tools.getUUID();
return DoService(putTaskResultURL, rTemp, userAgent);
}

public static string StrToHex(string str)
{
string strResult;
byte[] buffer = Encoding.GetEncoding("utf-8").GetBytes(str);
strResult = "";
foreach (byte b in buffer)
{
strResult += b.ToString("X2");//X是16进制大写格式
}
return strResult;
}
public static string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF "
{
string hexString = string.Empty;

if (bytes != null)
{
StringBuilder strB = new StringBuilder();

for (int i = 0; i < bytes.Length; i++)
{
strB.Append(bytes[i].ToString("X2"));
}
hexString = strB.ToString();

} return hexString;
}
}
}

时间: 2024-10-01 07:40:34

SEO(Business)的相关文章

2015 Small Business Book Awards Community Choice Winners

2015 Community Choice Winners Community Choice Awards winners represent the top public vote getters in eight Awards categories as chosen by fans and the small business community. Also, the top vote getter for the Awards was named the overall Communit

SEO学习步骤总结入门教程

在这里,简单的把SEO的学习步骤说了一下,今天我们一起来把SEO学习步骤每一步的主要内容拿出来重点强调一下并做个总结.  定位好网站内容以后把你所想做排名的关键词定位好,关键词里包括了主关键词和长尾关键词.这里重点强调了不可以忽略长尾关键词的作用.  对于一个好的网站结构可以让搜索引擎蜘蛛顺利的抓取我网站的内容,进而达到被收录的目的.比较有利于蜘蛛抓取的网站结构,一般来说,收录数量相对来说会比较多.,只有让搜索引擎收录你网站页面那搜索引擎才会释放出来,这样网站关键词才可能有排名.  这里重点要注

了解搜索引擎来进行SEO

搜索引擎的工作的过程非常复杂,而简单的讲搜索引擎的工过程大体可以分成三个阶段.爬行和抓取:搜索引擎蜘蛛通过跟踪链接访问页面,获取页面HTML代码存入数据库.预处理:搜索赢球对抓取来的页面数据文字进行文字提取.中文分词.索引等处理,以备排名程序调用.排名:用户输入关键字后,排名调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面. 爬行和抓取 爬行和抓取是搜索引擎工作的第一步,完成数据收集任务. 蜘蛛 搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称为机器人(bot). 蜘蛛

友链依旧重要:移动互联网背后的SEO优化技巧

移动互联网发展这么快,将来还需要网站吗成为很多站长的疑问,那做SEO优化的站长不是将走向失业,实际上,在2010年中国移动互联网开始至今,移动化SEO不仅没有让这个市场失去活力,反而在各种场景下依旧有站长通过移动化SEO优化获得不错的收入. 以前我们常说SEO优化主要为站内优化和站外优化,站内主要做各种设置如301.404.内链.内容与用户体验,站外优化则是友情链接,其中外链成为最重要的工作之一,随着技术的进步以及搜索引擎针对页面的评分变化,友链开始发生极大的改变,但是这种兼具着SEO优化以及品

Skype for Business Server 2015系列(二)部署后端服务器

一.Skype for Business Server 2015后端SQL数据库安装 本次我们部署的是企业版的SFB,需要SQL数据库的支持,我们这次选用SQL 2014 SP1. SQL安装需要.Net Framework 3.5的支持,因此开始之前先添加.net 3.5功能. 在服务器配置管理器中添加,Windows Server 2012默认安装了net4.5,要安装3.5建议首先插入Windows Server 2012光盘,然后安装中指定光盘的%CD-Rom%\Sources\SxS\

用户体验在SEO当中

我们可以说,医疗是目前最难做SEO行业,在这里,我说怎么看病难SEO,我们应该怎么去澄清医疗SEO.内容 许多医学网站更新的内容属于某些如何治疗一些疾病,以及那些专门从事肝,脾,肺,肾的名字是什么,这些话,其实用的搜索引擎已经处理考虑这些词自动过滤的情况下,如果所有添加的细节有关的情况下,我们收集有关医疗行业的一些消息,宣布可能会更好.代替公布的经过过滤的内容,包括增加了最终排名没有. 外链 SEO做外链是不容忽视的,尽管百度绿萝算法的到来对SEO外链没有给我们像往常一样,但忠实SEO SEO论

跟着SEO常识和SEO手艺的泛滥

跟着SEO常识和SEO手艺的泛滥,SEO行业孔殷需要一种更有意义的交流平台或体例,SEO论坛已经快要走向恼了,像人气很火的坛现在也成了外链的海洋,还好坛推出了SEO问答,而且进行了实名制注册.SEO行业从来都离不开交流,尤其是诚信.有意义的交流,去SEO论坛和站长类论坛的人根基上都是为了发外链.这样的交流没有若干好多真正的意义,常有新人去提问题,但获得的回覆往往是“进修了,看看”之类的灌水说话.对于处所SEO行业,或者说是一个小的SEO圈子,更需要真诚的交流和分享,凭空诬捏做欠好SEO,集思广益

单页应用SEO浅谈

单页应用SEO浅谈 前言 单页应用(Single Page Application)越来越受web开发者欢迎,单页应用的体验可以模拟原生应用,一次开发,多端兼容.单页应用并不是一个全新发明的技术,而是随着互联网的发展,满足用户体验的一种综合技术. SEO 一直以来,搜索引擎优化(SEO)是开发者容易忽略的部分.SEO是针对搜索(Google.百度.雅虎搜索等)在技术细节上的优化,例如语义.搜索关键词与内容相关性.收录量.搜索排名等.SEO也是同行.市场竞争常用的的营销手段.Google.百度的搜

AX2012 Business Connector Error

6.0: AxCryptoClient - New encryption key created 6.0: Unable to InitializeSession. 6.0: No built-in message corresponding to message id 0. 解决方法: 1.将登录用户设为AX中的Business Connector用户. 2.将AX中的Business Connector用户添加到本地管理员组. AX2012 Business Connector Error,