在写一个爬虫功能,基本已经完成,现在发现一个问题,如何去爬一个动态生成的页面内容,例如网易的新闻 http://3g.163.com/touch/article.html?from=index.yw&docid=AMJFTQ8B00014JB6
目前我实现方式类似于 http.get(url,function(){ /******/ })
解析是通过cheerio来获取我要的文章内容 $(‘body’)
ps:由于我这个是针对多个网站的 所以不能通过某个网站的接口去请求数据再解析,例如通过网易的接口读取数据 求帮助~
刚看了下网易的新闻页面,他是通过js异步加载新闻信息的,接口地址是:http://3g.163.com/touch/article/AMJFTQ8B00014JB6/full.html,这个新闻接口是通过js根据新闻标识:AMJFTQ8B00014JB6 进行拼接,并通过ajax请求获取数据后通过js绑定呈现的。 所以,如果你是根据页面分析所有资源文件后下载,根本不会找到这个地址。 我觉得如果你可以做到页面打开后把所有需要加载的资源都下载下来,那就可以完成整个抓取工作。 类似抓包工具,可以获取到所有当前页面加载的所有资源,然后把资源都下载下来,这样就可以达到你说的兼容各种网站的抓包工作。
@SFLAQiu 所以有这样的库吗?
针对多个网站的,(前提是数据交互方式有共同点)。如果没有,你怎么通用。
楼主试试用这个: http://phantomjs.org/