当前位置:编程学习 > C#/ASP.NET >>

采集到的代码不一样的?

目标地址   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 --------------------编程问答--------------------
引用 3 楼 strife 的回复:
在返回结果里面再加个筛选判断好了,如果是table就return

这个方法可以考虑啊。 --------------------编程问答-------------------- 喔..是喔..如果有TABLE    就让他重新采集..

需然是个解决办法..   但是..无型中还是增加了采集资源..     而且我最想知道为什么会出现这种情况..  而正常的浏览就没事?   

会是我还有连接关键属性没有配置好? --------------------编程问答-------------------- 想知道这个原因只有在服务器上加log看什么时候会进入到table记录中去了 --------------------编程问答-------------------- 一、可能识别出采集,人家进行反采集。

二、可能识别为搜索引擎进行采集数据,它自动给出极其精简的页面,凸出的是关键字与网页体积比例。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,