求大神指点:获取网页内容(详情见文章内容)急!在线等!
我现在在写这样一个程序:用户输入一个关键词,指定搜索引擎(一般为百度)去搜索指定网站(测试的是新华网news.xinhuanet.com),将返回的结果链接一个个地打开,把网页里面的标题、时间、发布者、正文都获取出来,写进数据库。
我的思路是这样的:利用 htmlparser 把构造的百度搜索链接(百度貌似没有提供API,我只有直接用GET方式提交检索了)返回的内容全部读取出来,过滤出其中的结果链接(链接中含有www.xinhuanet.com的)。最后再一个个地读取结果链接,将页面中的内容去出来(思路也是遍历标签节点,遇到特定格式的标签把内容取出来)。
目前已经初步完成,测试的效果是:正常情况下前五六十条数据没问题(测试的关键词是 西门子冰箱 1000+ 条结果应该),很好,但从五六十条开始,就停止爬取了(就是等好久也没反应,我用的是一个独立的进程爬取的,跟GUI无关)。
问题是:
1.爬取了五六十条为什么会停止爬取?
2.有没有好一点、稳定一点的方法?
------解决方案--------------------我不清楚,不过 友情帮顶
你去google一下,找找有关 的技术
------解决方案--------------------
1.爬取了五六十条为什么会停止爬取?
—— 很多主流网站有防爬虫设计,如果爬虫访问过于频繁,或者是并发爬,会被band;
—— 另一种可能是网络不稳定导致,类似你有时候浏览器刷新页面刷出个空白页面。
2.有没有好一点、稳定一点的方法?
—— 看问题情况,如果是前者,需要调整爬的频度;
—— 如果是后者,设置超时机制,比如5秒内没有响应就断开重试。
------解决方案--------------------估计是扒得太快 IP被封了
------解决方案--------------------爬的时候不要太贪婪了,低调点。百度有反爬的,大家都去爬那百度还不是疯了。