如何在网页中下载完整数据

时间:2014-09-04 13:04:18

标签: c# webclient webclient-download

我使用的是WebClient方法。需要此站点中的特定数据。但是webclient下载了丢失的数据。我在notepad ++中打开这个网站,这个长度是314497,但webclient下载7120.我需要帮助请帮帮我。

            using System;
            using System.Collections.Generic;
            using System.ComponentModel;
            using System.Data;
            using System.Drawing;
            using System.IO;
            using System.Linq;
            using System.Net;
            using System.Text;
            using System.Threading.Tasks;
            using System.Windows.Forms;

            namespace sampleapp
            {
                public partial class Form1 : Form
                {
                    public Form1()
                    {
                        InitializeComponent();
                        WebClient webClient = new WebClient();
                        string data=webClient.DownloadString(new Uri("blablabla"));
                        MessageBox.Show(data.Length.ToString());
                        textBox1.Text = data;



                    }
我正在处理它:

            namespace sampleapp
            {
                public partial class Form1 : Form
                {
                    public Form1()
                    {
                        InitializeComponent();
                    }

                    private void GetWebText(string url)
                    {
                        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                        request.UserAgent = "A .NET Web Crawler";
                        WebResponse response = request.GetResponse();
                        Stream stream = response.GetResponseStream();
                        StreamReader reader = new StreamReader(stream);
                        string htmlText = reader.ReadToEnd();
                        textBox1.Text = htmlText;
                        MessageBox.Show(htmlText.Length.ToString());


                    }

1 个答案:

答案 0 :(得分:0)

您要比较的网页的HTML源不一样。您可以从第一行看到doctypes不相同。一个是严格的,另一个是过渡性的。

这就是字符串长度不同的原因。

如果URL相同,则可能是由于用户代理正在传递的差异,或者可能是会话未被持久化。