因为别的项目组在作舆情的预言项目,我手头正好没有什么项目,忽然心血来潮想研究一下爬虫、分析的简单原型。网上查查这方面的资料还真是多,眼睛都看花了。搜了搜对于我这种新手来讲,想作一个简单的爬虫程序,因此HttpClient + jsoup是一个不错的选择。前者用来管理请求,后者用来解析页面,主要是后者的select语法很像jquery,对于用js的我来讲方便太多了。html
昨天和他们聊天的时候,他们选用了几个著名的开源框架使用,聊着聊着就发现原来他们目前尚未办法抓取动态的网页,尤为是几个重要的数字,例如评论数,回帖数等等。大体了解了一下,例如TRS的爬虫,对于js的调用,须要写js脚本,可是分析量巨大,他们的技术人员告诉咱们,相似这样的模板他们配的话,一天也就只能配2到3个,更不要说咱们这些半路出家的。正好以为很有挑战,因此昨天答应了他们看看能不能找到一个相对来讲简单的解决办法,固然,先不考虑效率。jquery
举一个简单的例子,以下图浏览器
“我有话说”后的1307就是后加载的,可是每每这些数字对于舆情分析来讲仍是比较重要的。框架
大体了解了需求,就分析一下如何解决。一般,咱们的一次请求,获得的回应是包含js代码和html元素的,因此对于jsoup这样的html解析器在这里就难以发挥优点,由于它所能拿到的html,1307尚未生成。这个时候就须要一个可运行js的平台,将运行过js代码的后的页面,交由html解析,这样才能正确得到结果。url
因为我比较偷懒,写脚本的方式一开始就被我抛弃了,由于分析一个页面太痛苦了,代码乱成一锅粥,好多还采用压缩的办法,满眼都是a(),b()的方法,看的太累了。因此我最优先想到的是,为何我不能让这个地址在某个浏览器中运行,而后将运行的结果交给html解析器去解析,那么整个问题不就迎刃而解了吗。这样我暂时的解决方案就是在爬虫服务端,开一个后台的浏览器,或者是有浏览器内核的程序,将url地址交给它去请求,而后从浏览器中将页面的元素取出,交给html解析器去解析,从而获取本身想要的信息。htm
明天接着聊,先休息了。blog