winhttp抓Google搜索结果页源码,抓多了会被封ip,有没有什么办法解决?
做个小程序调用Google搜索,从下载到的搜索结果页网页源码中提取自己想要的东西. 但是抓多了会被封ip,有没什么解决办法?
1 我现在winhttp本身都是把user agent设成浏览器了, 但是Google本身即使你在真正浏览器里刷新得快点都会说你流量异常让你输入验证码.
2 能怎么弹出个验证码窗口然后能继续吗?但是winhttp好像跟ie 跟webbrowser据说也不共用cache之类.应该没用
3 实在没办法,有没有什么能不断变化ip的代理软件呢?
拜谢!
[解决办法]
兄弟,误会了~~
您提交的数据有问题
上边我显示的那组内容是给您看的,不是把这些数据交给服务器用的,那些是服务器反给你的内容。
代码完全不是那样写的
提交代码不需要那么多 SetRequestHeader 程序里加那么多,看一眼就知道有问题了。
'能写成这样子就已经算完整了
set xml=new winhttprequest
xml.open "GET","http://www.google.com.hk/#newwindow=1&q=vb&safe=strict"
xml.SetRequestHeader "Referer", "http://www.google.com.hk/"
xml.send
我觉得您该先找些抓包的软件,抓些http往来的通讯数据看一下,看看浏览器给服务器发的是什么样的数据,服务器回给浏览器是什么样的数据
Set-Cookie这种头是服务器在告诉浏览器,叫它把这些cookie数据存在他这边,浏览器下次向服务器提交的时候用的头是cookie,而不是set-cookie,只是举个例子,另外还有很多,像Expires头,用来告诉浏览器过期的时间用的,超过多少时间之后,浏览器就该把cookie丢掉了。所以您该明白,这些内容不是加进代码用的。