【问题标题】:Why does InternetReadFile not grab the whole source of the website?为什么 InternetReadFile 不抓取网站的整个源?
【发布时间】:2014-06-13 01:11:26
【问题描述】:

因此,我正在使用带有 win32 的 WinInet.h 库编写一个项目,并且我正在使用字符串比较来检查某个字符串是否在源代码中,除了 InternetReadFile 没有抓取整个源代码,它只抓取顶部,例如20%,我尝试增加 NumberOfBytes 参数并将其增加到 1000 万,现在它只需要永远。基本上,我有一个程序,您单击一个按钮,它会抓取源代码并将其显示在消息框中。我正在尝试这样做,以便当您单击按钮时,它会在源代码中搜索特定字符串,并显示一个消息框,说明已找到文本。

有人知道我能做什么吗?

【问题讨论】:

    标签: c++ wininet


    【解决方案1】:

    来自文档:

    每次调用InternetReadFile要读取的数据量由dwNumberOfBytesToRead参数指定,数据在lpBuffer参数中返回。正常读取为每次调用 InternetReadFile 检索指定的 dwNumberOfBytesToRead,直到到达文件末尾。 为确保检索到所有数据,应用程序必须继续调用InternetReadFile 函数,直到该函数返回TRUE 并且lpdwNumberOfBytesRead 参数等于0。

    因此,您必须循环调用InternetReadFile(),直到收到您期望的所有数据。而且由于您正在执行字符串搜索,因此您需要缓冲读取的数据,然后扫描缓冲区,因为您要查找的字符串可能会跨越多个 InternetReadFile() 调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-25
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 2013-06-07
      • 2011-11-28
      相关资源
      最近更新 更多