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

懂C#采集的进来我遇到一个问题其他页面都可以采集就一个网站采集不了..str为空

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            string str = reader.ReadToEnd();
            reader.Close();
            response.Close();
            return str;

str里面有值  是不是加密了 还是怎么的 就是这个网站http://video.shishicai.cn/haoma/hljssc/list/84.aspx 请高手帮帮忙 谢谢了 --------------------编程问答-------------------- 我采集别的网站都可以的 就这个获取不到 不知道什么原因   给了结果 我马上给分...谢谢了 我在的 --------------------编程问答--------------------
引用 1 楼 zhujiaxianyushanshan 的回复:
我采集别的网站都可以的 就这个获取不到 不知道什么原因   给了结果 我马上给分...谢谢了 我在的

XML解析错误:未找到元素 
位置:http://video.shishicai.cn/haoma/hljssc/list/84.aspx 
行:1,列:1: --------------------编程问答-------------------- 自己顶下 没有高手帮下忙么 --------------------编程问答-------------------- 什么意思XML解析错误:未找到元素  
这个是? 可以采集到么 --------------------编程问答--------------------
引用 4 楼 zhujiaxianyushanshan 的回复:
什么意思XML解析错误:未找到元素  
这个是? 可以采集到么

我访问你给的网站出现的错误。 --------------------编程问答-------------------- http://video.shishicai.cn/haoma/hljssc/list/84.aspx --------------------编程问答-------------------- 可以进入的丫 http://video.shishicai.cn/haoma/hljssc/list/84.aspx  这个 你进不去么? --------------------编程问答-------------------- 我就是采集的时候没有获取到html代码....不知道怎么回事  --------------------编程问答-------------------- 进不去。。
这有一段.NET采集。
思路差不多

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.IO.Compression;
using System.Text.RegularExpressions;

namespace WikiPageCreater.Common
{
    public class PageHelper
    {
        /// <summary>
        /// 根据 url 获取网页编码
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static string GetEncoding(string url)
        {
            HttpWebRequest request = null;
            HttpWebResponse response = null;
            StreamReader reader = null;
            try
            {
                request = (HttpWebRequest)WebRequest.Create(url);
                request.Timeout = 20000;
                request.AllowAutoRedirect = false;

                response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)
                {
                    if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
                        reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress));
                    else
                        reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII);

                    string html = reader.ReadToEnd();

                    Regex reg_charset = new Regex(@"charset\b\s*=\s*(?<charset>[^""]*)");
                    if (reg_charset.IsMatch(html))
                    {
                        return reg_charset.Match(html).Groups["charset"].Value;
                    }
                    else if (response.CharacterSet != string.Empty)
                    {
                        return response.CharacterSet;
                    }
                    else
                        return Encoding.Default.BodyName;
                }
            }
            catch
            {
            }
            finally
            {

                if (response != null)
                {
                    response.Close();
                    response = null;
                }
                if (reader != null)
                    reader.Close();

                if (request != null)
                    request = null;

            }

            return Encoding.Default.BodyName;
        }

        /// <summary>
        /// 根据 url 和 encoding 获取当前url页面的 html 源代码        
       /// </summary>
        /// <param name="url"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public static string GetHtml(string url, Encoding encoding)
        {
            HttpWebRequest request = null;
            HttpWebResponse response = null;
            StreamReader reader = null;
            try
            {
                request = (HttpWebRequest)WebRequest.Create(url);
                request.Timeout = 20000;
                request.AllowAutoRedirect = false;

                response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode == HttpStatusCode.OK && response.ContentLength < 1024 * 1024)
                {
                    if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase))
                        reader = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress), encoding);
                    else
                        reader = new StreamReader(response.GetResponseStream(), encoding);
                    string html = reader.ReadToEnd();

                    return html;
                }
            }
            catch
            {
            }
            finally
            {

                if (response != null)
                {
                    response.Close();
                    response = null;
                }
                if (reader != null)
                    reader.Close();

                if (request != null)
                    request = null;

            }

            return string.Empty;
        }
    }
}
--------------------编程问答-------------------- “/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

值不能为空。
参数名: name 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentNullException: 值不能为空。
参数名: name

源错误: 


行 51:             }
行 52:            // {"BonusNumberString":"0,2,4,6,4|2|5","BonusTime":"2011-05-30 22:43","IssueNumber":"10056918"},{"
行 53:             string str = GetHtml("http://video.shishicai.cn/haoma/hljssc/list/84.aspx", Encoding.GetEncoding(GetEncoding("http://video.shishicai.cn/haoma/hljssc/list/84.aspx")));
行 54:             Regex re2 = new Regex("{(?<Hao>[\\s\\S]+?)}");
行 55:             MatchCollection martic2 = re2.Matches(str);
 

源文件: E:\都在这里了\lition\lition\lition\Test\Test.aspx.cs    行: 53 

这个怎么回事 --------------------编程问答-------------------- 我现在想得到他的 html代码 现在是代码获取不到 我没办法进行下面的正则匹配,..不知道怎么搞的 --------------------编程问答-------------------- 你进www.shishicai.com  再不看黑龙江时时彩的开奖号码
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,