日期:2014-05-17  浏览次数:20475 次

在线等,做行业板块涨幅榜的程序,求教大牛

在线等,做行业板块涨幅榜的程序,求教大牛,
做个像上面那张图片一样的行业板块涨跌幅,怎么做呢,找了很久都没找到接口
------最佳解决方案--------------------
没有接口就直接抓取啊,用HtmlAgilityPack。不会写的话把哪个网页地址贴给我,我试着写写看。
------其他解决方案--------------------
引用:
有网站提供数据,你若有接口可以获得,还有和交易所有合同的,从交易所拿数据,还有从其他网站上爬的


说话就是简单哈,

模拟浏览器抓数据。

如果你有数据,直接绑定列表。
------其他解决方案--------------------
你这个table就够了,关键你有数据就够了
------其他解决方案--------------------
引用:
你这个table就够了,关键你有数据就够了

这个数据是从哪里来的?还是自己添加的?
------其他解决方案--------------------
有网站提供数据,你若有接口可以获得,还有和交易所有合同的,从交易所拿数据,还有从其他网站上爬的
------其他解决方案--------------------
引用:
有网站提供数据,你若有接口可以获得,还有和交易所有合同的,从交易所拿数据,还有从其他网站上爬的

现在就是不知道从哪里拿到那个数据所以才来前教的嘛,晕死,我也知道用表格放数据,但是现在连数据都不知道从哪里来,没有接口
------其他解决方案--------------------
哪里截的图,就抓哪里的数据。
------其他解决方案--------------------
该回复于2012-12-08 14:12:25被管理员删除
------其他解决方案--------------------
引用:
哪里截的图,就抓哪里的数据。

不知道怎么抓捏,我看了源码,那个都是直接HTML代码,没有ajax获取过来或者JS调用出来,所以不知道怎么弄
------其他解决方案--------------------
引用:
没有接口就直接抓取啊,用HtmlAgilityPack。不会写的话把哪个网页地址贴给我,我试着写写看。

http://www.licaizhe.com/hangye_z.html
http://www.qianzhan.com/
这两个随便哪个都可以
------其他解决方案--------------------
示例代码:
		HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDoc = htmlWeb.Load(@"http://www.qianzhan.com/");
HtmlNodeCollection uls = htmlDoc.DocumentNode.SelectNodes(@"//div[@id='div-homestocks']/dl/dd/ul");
foreach (HtmlNode ul in uls)
{
foreach (HtmlNode li in ul.Elements("li"))
Response.Write(li.InnerText + " ");
Response.Write("<br/>");
}
Response.End();

下载HtmlAgiltiyPack,引入该程序集,开头添加:
using HtmlAgilityPack;
------其他解决方案--------------------
改进一下,把涨跌幅分开输出:
		HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDoc = htmlWeb.Load(@"http://www.qianzhan.com/");
HtmlNodeCollection uls = htmlDoc.DocumentNode.SelectNodes(@"//div[@id='div-homestocks']/dl/dd/ul");
for (int i = 0; i < uls.Count; i++)
{
if (i == 0)
Response.Write("<font color='red'>涨幅排名:</font><br/>");
if (i == uls.Count / 2)
Response.Write("<font color='green'>跌幅排名:</font><br/>");
foreach (HtmlNode li in uls[i].Elements("li"))
Response.Write(li.InnerText + " ");
Response.Write("<br/>");
}
Response.End();

------其他解决方案--------------------
csdn代码编辑器有bug,我上面的Response.Write方法里大多数都有<br/>的,被过滤掉了。