|
楼主 |
发表于 2016-3-29 17:01:04
|
显示全部楼层
private static string GetResultHtml(string urls)
{
string proxys = "";
proxys = AvailableProxys();
HttpItem item = new HttpItem()
{
URL = urls,
Encoding = null,
//Encoding = Encoding.Default,
Method = "get",
Timeout = 50000,
ReadWriteTimeout = 10000,
IsToLower = false,
Cookie = ch.Cookie,//传入的cookie值
UserAgent = userAgentLiShi,//userAgentLiShi 随机获取的userAgent
Accept = "text/html, application/xhtml+xml, */*",// 可选项有默认值
//ContentType = "text/html",//返回类型 可选项有默认值
//Referer = "http://www.sufeinet.com",//来源URL 可选项
Allowautoredirect = true,//是否根据301跳转 可选项
//CerPath = "d:\\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
//Connectionlimit = 1024,//最大连接数 可选项 默认为1024
//Postdata = "C:\\PERKYSU_20121129150608_ScrubLog.txt",//Post数据 可选项GET时不需要写
PostDataType = PostDataType.FilePath,//默认为传入String类型,也可以设置PostDataType.Byte传入Byte类型数据
ProxyIp = proxys,//代理端口号
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.Byte,//返回数据类型,是Byte还是String
PostdataByte = System.Text.Encoding.Default.GetBytes("UTF-8"),//如果PostDataType为Byte时要设置本属性的值
CookieCollection = new System.Net.CookieCollection(),//可以直接传一个Cookie集合进来
};
//item.Header.Add("测试Key1", "测试Value1");
//item.Header.Add("测试Key2", "测试Value2");
//得到HTML代码
HttpResult result = hh.GetHtml(item);
//取出返回的Cookie
string cookie = result.Cookie;
//返回的Html内容
string html = result.Html;
if (result.StatusCode == System.Net.HttpStatusCode.OK)
{
//表示访问成功,具体的大家就参考HttpStatusCode类
}
//表示StatusCode的文字说明与描述
//string statusCodeDescription = result.StatusDescription;
return html;
}
这是我用httphelp类设置的参数 我也设置代理了 ,但会抓取几次之后还是会出现验证码,再随机换一个代理端口号 还是 会出现 “用户您好:您的访问过于频繁,为确认本次访问为正常用户行为,需要您协助验证。”
|
|