C++获取网页源码 初学者求教

Re_yuLastLeaf 2017-09-21 02:33:02
CInternetSession Session;
CHttpFile *pHttpFile = NULL;
CString strClip;
CString Artical;
NewsInfo CurNews; //自定义结构体,用于返回当前获取新闻的内容
CurNews.MainText = "";
int JudgeUtf8 = -1; //判断网页内容是否为utf-8的编码
int IsArticle = 0;
pHttpFile = (CHttpFile*)Session.OpenURL(Address, 1, INTERNET_FLAG_TRANSFER_ASCII || INTERNET_FLAG_RELOAD, NULL, 0);//Adress是网页的url,我用CString传参传过来的
这是开始定义一些变量要用的代码...还有一些判断是否获取失败退出的代码
while (pHttpFile->ReadString(strClip))
{
if (JudgeUtf8)//前面有一段判断网页编码的代码,0就不是,1就是 因为跟问题无关就不贴出来了
{
strClip = Convert(strClip, CP_UTF8, CP_ACP);//转换编码
}
WriteLogFile(strClip); //自定义函数,把当前获取的源码写进文件
其他代码均是对字符串的判断处理
*******初学者,练习从人民网获取新闻,在这里发现了一个问题在一个语句之后会延时十秒,但有时候又不会,
2017-9-21 13:24:3 : <p><input type="text" value="请输入用户名" onFocus="this.value='';this.style.color='#000';" onBlur="if(!value){value=defaultValue;this.style.color='#d0d0d0';}" name="username" data-suggest="off" /></p>
2017-9-21 13:24:13 : <p><input type="password" value="" name="password" /></p><span
*******如上所示内容,可明显看到延时了十秒,但有时候又不会
2017-9-21 13:25:39 : <p><input type="text" value="请输入用户名" onFocus="this.value='';this.style.color='#000';" onBlur="if(!value){value=defaultValue;this.style.color='#d0d0d0';}" name="username" data-suggest="off" /></p>
2017-9-21 13:25:39 : <p><input type="password" value="" name="password" /></p><span style="display:none;"><input type="checkbox" name="remember" checked="checked" value="1"/><label for="rememberMe">记住登录状态</label></span>
*******如上所示,这个就没有延时.
而且我也把“pHttpFile = (CHttpFile*)Session.OpenURL(Address, 1, INTERNET_FLAG_TRANSFER_ASCII || INTERNET_FLAG_RELOAD, NULL, 0);”换成“pHttpFile = (CHttpFile*)Session.OpenURL(Address);”这个试了一下,好像这样的情况少了一些,但是运行的时间不同,可能是不同时段网页不同导致,不太清楚。
所以我想问一下,这个是网页问题,还是我代码问题,问了一下别人说是可能它后台的问题,如果是这样就好了,如果不是请问怎样修改才能够避免。(我也写了异常捕获,但是并没有触发。)
还有其他疑问请说我可能情况说得不是很准确。
...全文
587 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-09-21
  • 打赏
  • 举报
回复
参考curl源代码片断?
Re_yuLastLeaf 2017-09-21
  • 打赏
  • 举报
回复
另外可能有人会说那个根据OpenURL那个参数就不用再转码了,那个只是以前不知道时候的代码,不用在意这个(虽然我也不知道是不是不用了,我还没试过)。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧