我写了一从百度音乐任意一个页面抓取链接并自动下载歌曲的工具,才下了700首后就出现了这样的提示,求解决方案?
百度的数据抓取太快了之后,会弹出验证码的。你得问题有几个解决方法,整理一批代理网址,然后检测到问题的时候,通过程序自动更改你得代理服务器。还有一中方法,你写个程序去识别他的验证码。
你抓取太快, 这在它服务器端是可以检测到的, 你可以试试采集多少暂停下, 隔多久再继续, 最好是采集多少清缓存, 切换换IP再去做。 否则时不时就出来了。
如何改变这个ip呢,手动去重启路由器或猫吗?这个太复杂了吧
停一停是没问题,但这停多久呀,这是个问题呀,没效率抓取就没有意义了。
@沧海一杰: 如果是ADSL拔号, 你可以调用rasapi32.dll系统的API实现adsl进行拨号。 拔一次IP应该就变了。 如果不是, 你也可以用代理。 不过用代理自己就得找找哪些能用了。。。
你频率太高, 别人当然不会让你采集了。。。我之前做过类似的, 具体我也没试出来什么时候一定会出现验证码。
其实很好做, 检测到有这个页面, 清缓存, 重新拔号。 又能工作了。
百度有专门针对机器自动抓做处理,尽量使机器抓取更自然一点,比如抓取的时间,抓取的数量。
我就是使用webbrowser自动Click事件,然后捕获下载对话框,这个还不够自然呀?
好吧,看来原理还都是改IP原理为主,谢谢大家了。