欄位資料擷取代碼分享

來源:互聯網
上載者:User

 

 

好久沒來部落格園發帖啦!

先附:

 

 

 

 

 

 

 

 

 

 

 

 

 

代碼分享如下:

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

        private void button1_Click(object sender, EventArgs e)
        {
            dt.Rows.Clear();
            //要抓取的URL地址
            string Url = "http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";

            //得到指定Url的源碼
            string strWebContent = GetWebContent(Url);

            // richTextBox1.Text = strWebContent;
            //取出和資料有關的那段源碼
            int iBodyStart = strWebContent.IndexOf("<body", 0);
            int iStart = strWebContent.IndexOf("歌曲TOP500", iBodyStart);
            int iTableStart = strWebContent.IndexOf("<table", iStart);
            int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
            string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);

            //產生HtmlDocument
            WebBrowser webb = new WebBrowser();
            webb.Navigate("about:blank");
            HtmlDocument htmldoc = webb.Document.OpenNew(true);
            htmldoc.Write(strWeb);
            HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");

            // DataRow row = null;
            foreach (HtmlElement tr in htmlTR)
            {
                string strID = tr.GetElementsByTagName("TD")[0].InnerText;
                string[] info = tr.GetElementsByTagName("TD")[1].InnerText.Split('(');
                string strName = "";
                string strSinger = "";
                if (info.Length != 2)
                {
                    strName = info[0];
                    strSinger = "未知";
                }
                else
                {
                    strName = info[0];
                    strSinger = info[1].Replace(")", "");
                }
                strID = strID.Replace(".", "");
                DataRow row = dt.NewRow();
                row["ID"] = strID;
                row["voide"] = strName;
                row["name"] = strSinger;
                dt.Rows.Add(row);

                string strID1 = tr.GetElementsByTagName("TD")[2].InnerText;
                string[] info1 = tr.GetElementsByTagName("TD")[3].InnerText.Split('(');
                string strName1 = "";
                string strSinger1 = "";
                if (info1.Length != 2)
                {
                    strName1 = info1[0];
                    strSinger1 = "未知";
                }
                else
                {
                    strName1 = info1[0];
                    strSinger1 = info1[1].Replace(")", "");
                }
                strID1 = strID1.Replace(".", "");
                DataRow row1 = dt.NewRow();
                row1["ID"] = strID1;
                row1["voide"] = strName1;
                row1["name"] = strSinger1;
                dt.Rows.Add(row1);

                //string strID2 = tr.GetElementsByTagName("TD")[3].InnerText;

                //string[] info2 = tr.GetElementsByTagName("TD")[4].InnerText.Split('(');
                //string strName2 = "";
                //string strSinger2 = "";
                //if (info1.Length != 2)
                //{
                //    strName2 = info1[0];
                //    strSinger2 = "未知";
                //}
                //else
                //{
                //    strName2 = info1[0];
                //    strSinger2 = info1[1].Replace(")", "");
                //}
                //strID1 = strID2.Replace(".", "");
                //DataRow row2 = dt.NewRow();
                //row2["ID"] = strID2;
                //row2["voide"] = strName2;
                //row2["name"] = strSinger2;
                //dt.Rows.Add(row2);

            }
            ////插入資料庫
            //// InsertData(dt);

            dataGridView1.DataSource = dt.DefaultView;

        }

        private string GetWebContent(string Url)
        {
            string strResult = "";
            try
            {

                //建立訪問目標
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                //聲明一個HttpWebRequest請求
                request.Timeout = 30000;
                //設定連線逾時時間
                request.Headers.Set("Pragma", "no-cache");

                //得到回應
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                //得到資料流
                Stream streamReceive = response.GetResponseStream();

                //對擷取到的資料流進行編碼解析,讓我們可以進行正常讀取
                Encoding encoding = Encoding.GetEncoding("GB2312");
                StreamReader streamReader = new StreamReader(streamReceive, encoding);

                //讀取出資料流中的資訊
                strResult = streamReader.ReadToEnd();

                //關閉流

                streamReader.Close();

                //關閉網路響應流

                response.Close();
            }
            catch
            {
                MessageBox.Show("出錯");
            }
            return strResult;
        }
        static DataTable dt = new DataTable();

        private void Form1_Load(object sender, EventArgs e)
        {
            DataColumn ID = new DataColumn();
            DataColumn voideName = new DataColumn();
            DataColumn name = new DataColumn();
            ID.ColumnName = "ID";
            voideName.ColumnName = "voide";
            name.ColumnName = "name";
            dt.Columns.Add(ID);
            dt.Columns.Add(voideName);
            dt.Columns.Add(name);
        }
    }

紐約時尚|韓版百搭時尚休閑大V領帥氣型男短袖T恤 白色
39.0元 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.