网页数据采集 现在帮朋友做一个小工具,定时采集这个网站上的开奖号码http://jk.trade.500wan.com/pages/trade/ssc/trade.php大家有没有做过类似的,给点思路。注意我要采集的是网页上显示的数据,不是要它的网页源代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果网页每次都是固定的应该不难先读取html代码,再把指定位置的数据提取出来,可以用CHttpFile试下。 获取网页源码,解析DOM结构,就可以取到网页元素特定位置的内容了 CString url; GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。 char* headers="Accept:*/*\r\nAccept-Language:zh-cn\r\nUser-Agent:VCTestClient\r\n"; CInternetSession Sess; CHttpFile* cFile = (CHttpFile*)Sess.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers)); DWORD dwStatusCode; cFile->QueryInfoStatusCode(dwStatusCode); if(dwStatusCode == HTTP_STATUS_OK) { CString szData,szAllData; while(cFile->ReadString(szData)) { szAllData += szData; szAllData += "\r\n"; } cFile->Close(); Sess.Close(); CString name = GetFileName(url,TRUE); CFile file(name, CFile::modeCreate | CFile::modeWrite); file.Write(szAllData,szAllData.GetLength()); file.Close(); } else { MessageBox("请求失败。"); } 如果html结构是固定的话,直接可以读到指定行,然后提取出你要的数据。 解析网页啊,查找特定标记(如SRC="http://xxx.xxx.xxx"),读取引号中间的内容计可. 可以使用WebBrowser对象加载目标URL,这就相当于你已经下载网页到本地了然后使用DOM对象要对网页进行分析,获取你想要的数据 其实这个是我现在用的方式,主要是用WebBrowser加载占用太大的内存,而且加载的速度也很慢,所以想选择更好点的方法 唉,最近在CSDN上发的几个帖子提出的问题都没有得到多少有价值的参考,算了明天结贴了 关于wsprintf,/s/e的问题 请问这种下拉列表是如何绘制的??? 我在VC6.0 IDE下绘制矩阵的影像图,如何调节GRB值进行填充? 有做智能卡的兄弟吗?前景怎么样啊? 有没有朋友找工作的啊??? 那位能解释一下ASM是什么意思呢,ASM开发怎样进行呢? 没事学习下RTSP/RTP,求协议实现代码? 位图的RGB提取 计算机模拟考试系统在登陆时出现 无效的类字符串 怎么解决? 入门级问题,送分 如何在listctrl中添加一列checkbox(不使用默认的风格) ★★具体项目中,连接数据库的用户名+密码,都写死到代码里面吗?
GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。
char* headers="Accept:*/*\r\nAccept-Language:zh-cn\r\nUser-Agent:VCTestClient\r\n";
CInternetSession Sess;
CHttpFile* cFile = (CHttpFile*)Sess.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers)); DWORD dwStatusCode;
cFile->QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
CString szData,szAllData;
while(cFile->ReadString(szData))
{
szAllData += szData;
szAllData += "\r\n";
} cFile->Close();
Sess.Close();
CString name = GetFileName(url,TRUE);
CFile file(name, CFile::modeCreate | CFile::modeWrite);
file.Write(szAllData,szAllData.GetLength());
file.Close();
}
else
{
MessageBox("请求失败。");
}
解析网页啊,查找特定标记(如SRC="http://xxx.xxx.xxx"),读取引号中间的内容计可.
然后使用DOM对象要对网页进行分析,获取你想要的数据