HtmlUnit 网络爬虫 菜鸟的学习笔记(三)

            上一篇写到,要是分析每个url,包括滚动条滚动的url和分页的url就能够构造出来url来访问,从而抓取信息,可是这样要是想把我关注的人的全部微博所有输出的话,岂不是每一个关注的人的url都要去看和分析,这样工做量就很大了html

            因此今天刚我就仔细分析了一下的url,发现其实变化量除了page和pagebar这两个参数,还有其余的参数须要关注: 该人的主页id,domain和id,下面说明一下web

给一个分页的url参考一下ajax

http://weibo.com/u/1645851277?pids=Pl_Official_MyProfileFeed__22&is_search=0&visible=0&is_tag=0&profile_ftype=1&page=" + (page++) + "&ajaxpagelet=1&ajaxpagelet_v6=1&__ref=/u/1645851277&_t=FM_144101367516634api

给一个滚动条的url参考一下dom

http://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100505&from=myfollow_all&pre_page=1&page=1&max_id=&end_id=3881954464220733&pagebar=0&filtered_min_id=&pl_name=Pl_Official_MyProfileFeed__22&id=1005051645851277&script_uri=/u/1645851277&feed_type=0&domain_op=100505&__rnd=1441013708418url

上面标红的能够看到,1645851277就是主页的id,domain就是100505,id就是1005051645851277,其实就是domain+主页id获得的spa

这些参数要怎么得到呢?debug

            首先是主页id,这个其实在我关注的那个页面能够找到的,比较简单,搜一下id,就看到了,而后用得到标签的方式便可得到code

            得到以后就构造好了访问这我的的微博主页的url,而后就须要找domain和id了,用webClient.getPage进去以后,这里debug能够看到这样的配置,嘿嘿,是否是很明显
htm

            

            可是问题来了,如何得到这个$CONFIG参数,开始我也很纳闷,这个可咋搞啊,放在CDATA块中的,而后百度了不少htmlunit获取CDATA的方法,没有找到,很郁闷,可是这个时候忽然发现,这个是放在<script>标签里的,也就是说这是脚本,我一下就想到htmlunit一个api

            HtmlPage.executeJavaScript("脚本")

            这个方法就是容许你直接去执行一些脚本语言,因此果断用这个主页的HtmlPage对象去执行了这个方法          

configMap = (Map<String, String>) page3.executeJavaScript("$CONFIG").getJavaScriptResult();

            这是个参数,因此直接取到,强转为Map,而后直接get出须要的属性,搞定,修改以后的代码就能够本身根据查出来的各类id来把我关注的人的微博都能爬出来。

            最后欢迎各位大神继续批评指正啊,小弟在这感谢了(●'◡'●)

相关文章
相关标签/搜索