博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#页面抓取信息
阅读量:5316 次
发布时间:2019-06-14

本文共 3208 字,大约阅读时间需要 10 分钟。

//根据Url地址得到网页的html源码         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();             }             catch             {                 MessageBox.Show("出错");             }             return strResult;         }为了使用HttpWebRequest和HttpWebResponse,需填名字空间引用  using System.Net;以下是程序具体实现过程:private void button1_Click(object sender, EventArgs e)         {            //要抓取的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("
", 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"); foreach (HtmlElement tr in htmlTR) { string strID = tr.GetElementsByTagName("TD")[0].InnerText; string strName = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "MusicName"); string strSinger = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "Singer"); strID = strID.Replace(".", ""); //插入DataTable AddLine(strID, strName, strSinger,"0"); string strID1 = tr.GetElementsByTagName("TD")[2].InnerText; string strName1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "MusicName"); string strSinger1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "Singer"); //插入DataTable strID1 = strID1.Replace(".", ""); AddLine(strID1, strName1, strSinger1,"0"); string strID2 = tr.GetElementsByTagName("TD")[4].InnerText; string strName2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "MusicName"); string strSinger2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "Singer"); //插入DataTable strID2 = strID2.Replace(".", ""); AddLine(strID2, strName2, strSinger2,"0"); } //插入数据库 InsertData(dt);    dataGridView1.DataSource = dt.DefaultView;}

转载于:https://www.cnblogs.com/IT1517/articles/4731148.html

你可能感兴趣的文章
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>
php中的isset和empty的用法区别
查看>>
Android ViewPager 动画效果
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>