采集到的代码不一样的?
目标地址 http://zhaoqing.baixing.com/ershoumotuoche/采集过程中。 会出现两种版本的列表源码。 一份是TABLE排版的。 一份是LI 排版的。
问题:“浏览器多次F5,源文件代码是一样的,为什么程序采集的就会偶发性出现TABLE的排版。。
希望高手解答。
public string GetHttpPageCode(string Url, Encoding EnCodeType)
{
string strResult = string.Empty;
if (Url.Length < 10)
return "$UrlIsFalse";
try
{
string rl;
HttpWebRequest myReq = ((HttpWebRequest)WebRequest.Create(Url));
myReq.UserAgent = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
myReq.Accept = "*/*";
myReq.KeepAlive = true;
myReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
WebResponse myRes = myReq.GetResponse();
Stream resStream = myRes.GetResponseStream();
StreamReader sr = new StreamReader(resStream, EnCodeType);
StringBuilder sb = new StringBuilder();
while ((rl = sr.ReadLine()) != null)
{
sb.Append(rl);
}
strResult = sb.ToString();
myRes.Close();
}
catch (Exception)
{
throw;
} --------------------编程问答-------------------- 你的采集没有正则么。
就是简单的抓取。
static string GetHtml(string url, Encoding encoding)
{
byte[] buf = new WebClient().DownloadData(url);
if (encoding != null) return encoding.GetString(buf);
string html = Encoding.UTF8.GetString(buf);
encoding = GetEncoding(html);
if (encoding == null || encoding == Encoding.UTF8) return html;
return encoding.GetString(buf);
}
static Encoding GetEncoding(string html)
{
string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
string charset = Regex.Match(html, pattern).Groups["charset"].Value;
try { return Encoding.GetEncoding(charset); }
catch (ArgumentException) { return null; }
}
--------------------编程问答-------------------- 楼上的朋友,现在不是提取数据的问题。。 现在是获取网页源代码时出现两种情况。。导致后续工作不能完成。
即。strResult 这个变量的值。 会有两种不一样的代码。。 --------------------编程问答-------------------- 在返回结果里面再加个筛选判断好了,如果是table就return --------------------编程问答--------------------
这个方法可以考虑啊。 --------------------编程问答-------------------- 喔..是喔..如果有TABLE 就让他重新采集..
需然是个解决办法.. 但是..无型中还是增加了采集资源.. 而且我最想知道为什么会出现这种情况.. 而正常的浏览就没事?
会是我还有连接关键属性没有配置好? --------------------编程问答-------------------- 想知道这个原因只有在服务器上加log看什么时候会进入到table记录中去了 --------------------编程问答-------------------- 一、可能识别出采集,人家进行反采集。
二、可能识别为搜索引擎进行采集数据,它自动给出极其精简的页面,凸出的是关键字与网页体积比例。
补充:.NET技术 , ASP.NET