我已经让 LibCURL 从网络上获取页面的源代码,通过它并挑选出数据。
一切都很好,只有一页。在使用 ifstream 并将页面源保存到 .html 文件时,我在离线测试期间遇到了这个问题。基本上我认为发生的事情是网页呈现html +数据,我想要通过js调用的部分(不是100%肯定)所以它没有直接在源代码中呈现。
我在离线测试中解决这个问题的方法是将整个网页作为离线模式文件下载到 Safari 上,我相信它被称为 .webarchive 文件?这样,当我将其视为源代码时,html 和数据就会在源代码中呈现。
我已经在互联网上寻找答案,但似乎找不到答案,任何人都可以在这里帮助我设置 curl 以“完整”下载网页吗?
这是我目前使用的选项。
curl_easy_setopt(this->curl, CURLOPT_URL, url);
curl_easy_setopt(this->curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(this->curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0");
curl_easy_setopt(this->curl, CURLOPT_COOKIEFILE, "cookies.txt");
curl_easy_setopt(this->curl, CURLOPT_COOKIEJAR, "cookies.txt");
curl_easy_setopt(this->curl, CURLOPT_POSTFIELDS, postData); // if needed
curl_easy_setopt(this->curl, CURLOPT_WRITEFUNCTION, this->WriteCallback);
curl_easy_setopt(this->curl, CURLOPT_WRITEDATA, &readBuffer);
res = curl_easy_perform(this->curl);