营业费用率C#⽹络爬⾍(爬取表格数据)柿子英语
所谓的爬⾍,⽆⾮就是通过⼀些特定的程序访问⼀些想要访问的⽹页,并⽹页上⾯的内容通过⾃定义的⽅式保存下来。
这⾥我们将通过⼀个⼩⼩的C#程序,实现爬取同花顺中上证50指的实时信息,程序很简单,⼤神勿喷,不喜勿喷。
所谓爬⾍,就是要解决三个问题:⼀个是爬什么,第⼆个是怎么爬,第三个是爬下来的数据如何保存,⽅法很多,根据个⼈需要和能⼒⽔平仁者见仁、智者见智。
下⾯我们将通过具体实例讲解⼀下具体如何解决上述三个问题。
⼀、爬什么
高考倒计时100天想要什么数据就爬什么数据,但是这些数据在⽹页中是如何表⽰和存储的呢?这个时候我们就需要分析我们所要爬取得页⾯结构。
在这个例⼦中我们要爬取⽹页中的表格,如下图所⽰:
吩字组词
下⾯通过具体代码来说明:
HtmlDocument doc = web.Document;
俶尔远逝HtmlElementCollection tbs = doc.GetElementsByTagName("TABLE");//找到table标签
foreach (HtmlElement tb in tbs)//遍历
{
HtmlElementCollection trs = tb.GetElementsByTagName("TR");//每⾏
foreach (HtmlElement tr in trs)
{
HtmlElementCollection tds = tr.GetElementsByTagName("TD");//每列韩亚轩
if (tds.Count > 0)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < tds.Count; i++)
{
//找到需要的信息列,并将对应的信息填充到dr
dr["序号"] = tds[0].InnerText;
dr["股票代码"] = tds[1].InnerText;
百家讲坛大风歌dr["股票简称"] = tds[2].InnerText;
dr["最新价"] = tds[3].InnerText;
dr["涨跌额"] = tds[4].InnerText;
dr["涨跌幅"] = tds[5].InnerText;
dr["换⼿率"] = tds[13].InnerText;
}
//将dataReader读取的每⼀⾏数据保存到datatable中
dt.Rows.Add(dr);
}
}
小孩满月酒最后在Form_load 中添加以下代码:
dt.Columns.Add("序号", System.Type.GetType("System.String"));
dt.Columns.Add("股票代码", System.Type.GetType("System.String"));
dt.Columns.Add("股票简称", System.Type.GetType("System.String"));
dt.Columns.Add("最新价", System.Type.GetType("System.String"));
dt.Columns.Add("涨跌额", System.Type.GetType("System.String"));
dt.Columns.Add("涨跌幅", System.Type.GetType("System.String"));
dt.Columns.Add("换⼿率", System.Type.GetType("System.String"));
web.Url = new System.Uri("/stock/zs/sz50/");//要爬取的⽹页URL 最后的结果如下如所⽰: