首页 > 代码库 > c#模拟百度电击器方案
c#模拟百度电击器方案
我们都知道百度对于用户体验很重视,如果一个关键词的某个搜索结果,点击量会很对的话,则百度会认为这个结果是用户所喜欢的结果,然后这个网站自然会在百度得到一个很好的排名。
网络上也出现了百度自动排名点击器,不知道这个到底对排名有没有用,但是用程序来实现这个东西,还是很有意思的。
首先分析下百度搜索关键词所提交的地址
http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=这是关键词 FA&pn=(这是页数-1)&ver=0&cl=3&uim=6&usm=0
既然有了这个规律,那我们程序要在海量的搜索结果中找到我们的网址就不难了。
找到地址的下一步就是点击了吧,在这里,我们就是用c#的webbrowser来模拟吧。
我们先让webbrowser来打开我们得到的百度网址,让后找到我们网址的链接,自动点击。
这就是这个的核心源码了:
string keywords = this.textBox2.Text.ToString();
url = "http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=" + keywords + "&pn=" + Convert.ToInt32(Convert.ToInt32(this.textBox3.Text.ToString()) - 1) + "0&ver=0&cl=3&uim=0&usm=0";
//打开网址
this.webBrowser1.Navigate(url);
//循环每个元素
for (int i = 0; i < this.webBrowser1.Document.All.Count; i++)
{
//获得链接
if (this.webBrowser1.Document.All[i].TagName.ToLower() == "a")
{
//判断链接是不是我们的网址
if (this.webBrowser1.Document.All[i].GetAttribute("href") == this.textBox1.Text.ToString())
{
//如果是,自动点击
webBrowser1.Document.All[i].InvokeMember("click");
}
}
}
自动点击就这么简单实现了,我们可以再加个timer,一段时间点一次。但是这样有个问题,我们的ip是固定的,百度估计也不会傻到一个ip点上几千次就把排名提上去了。所以最好还是ie设置代理。
private void setProxy(string ip)
{
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software/Microsoft/Windows/CurrentVersion/Internet Settings", true);
//设置代理可用
rk.SetValue("ProxyEnable", 1);
//设置代理IP和端口
rk.SetValue("ProxyServer", ip);
rk.Close();
}
private void disProxy()
{
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software/Microsoft/Windows/CurrentVersion/Internet Settings", true);
//设置代理可用
rk.SetValue("ProxyEnable", 0);
//设置代理IP和端口
rk.SetValue("ProxyServer", "");
rk.Close();
}
这就是设置ie的代理的代码。到这里这个小工具就可以用了。
其实这个改造一下,刷pv也很不错。
最后界面如下