BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #12928同步于 2011/4/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

下面的抓取网页程序为何不能抓取谷歌的

wow558
2011/4/15镜像同步5 回复
以下是程序源码:(c++写的,IDE :VC6.0) .......................................................... #include<windows.h> #include<Wininet.h> #include<iostream> #include<fstream> #include<string> #pragma comment(lib,"WinInet.lib") using namespace std; int main() { HINTERNET hINet, hHttpFile; char szSizeBuffer[32]; DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer); hINet = InternetOpen("IE6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 ); //InternetOpen初始化WININET.DLL string url = "http://www.google.com.hk/search?client=aff-avalanche&hs=6iX&hl=zh-CN&source=hp&biw=1280&bih=621&q=%E9%9F%A9%E5%AF%92&aq=f&aqi=&aql=&oq="; //抓新浪网 if ( !hINet ) { cout << "InternetOpen fail" << endl; return 1; } hHttpFile = InternetOpenUrl(hINet, url.c_str(), NULL, 0, 0, 0); //这个函数连接到一个网络服务器上并且最被从服务器上读取数据 if(!hHttpFile) { cout << "error open url" << endl; return 1; } BOOL bQuery = HttpQueryInfo(hHttpFile, HTTP_QUERY_CONTENT_LENGTH, szSizeBuffer, &dwLengthSizeBuffer, NULL); //得到关于文件的信息 if(bQuery ==false) { InternetCloseHandle(hINet); cout << "error query info" << endl; return 3; } int FileSize=atol(szSizeBuffer); //atol函数把字符串转换成长整型数 string revData; revData.resize(FileSize); DWORD dwBytesRead; BOOL bRead = InternetReadFile(hHttpFile, &revData[0], FileSize, &dwBytesRead); //web浏览器将在InternetReadFile上循环 ,不停地从Internet上读入数据块。 if(!bRead) { cout << "error to read file" << endl; return 4; } ofstream out_file("wangye.txt"); out_file << revData; //输出到文件 InternetCloseHandle(hHttpFile); //关闭句柄 InternetCloseHandle(hINet); cout << "抓取成功!\n" << endl; system("pause"); return 0; } .................................................. string url =“ ”中的URL 换作百度或者新浪,有道的都能抓取,就是谷歌的不行,请大牛指教,多谢!
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
zzcc机器人#1 · 2011/4/15
不行返回什么status code了? 还有什么其他头部?
wow558机器人#2 · 2011/4/15
【 在 zzcc 的大作中提到: 】 : 不行返回什么status code了? : 还有什么其他头部? : -- : ................... error query info Press any key to continue 多谢了
zzcc机器人#3 · 2011/4/15
不是说这个。。你自己打的信息有什么用啊 hINet的出错信息是什么 【 在 wow558 的大作中提到: 】 : : 不行返回什么status code了? : : 还有什么其他头部? : : -- : ...................
wow558机器人#4 · 2011/4/15
【 在 zzcc 的大作中提到: 】 : 不是说这个。。你自己打的信息有什么用啊 : hINet的出错信息是什么 : 【 在 wow558 的大作中提到: 】 : ................... 这个程序我网上找的,说实话,具体怎么情况,我搞不懂,不好意思啊
superlq机器人#5 · 2011/4/25
google有自己的检测系统 检测到可能是机器人的时候会要求输入验证玛 经常用web代理会遇到验证玛的框