前段时间写了一些关于抓取新浪微博的经历,现在就贴一些我遇到过一些问题的代码实现思路吧:(我使用的是 htmlunit 爬虫)
每个人的博客主页中都有微博内容块,每次点击查看微博内容的时候你会发现,微博内容不是一次加载的;这个问题不管是新浪还是腾讯,它们的内容加载方式都是一样的。
废话不多说,直接将代码实现:
1. 请求微博内容url,获取请求返回的数据,由于返回的微博内容时嵌入在js中,但是js中的微博内容是有规律的;所以我就截取js中包含微博内容的html标签内容。
然后解析html标签字符串,通过xpath方式获取想要的内容。
//微博首页
HtmlPage page = client.getPage(weiboUrl);
/*
* 提取js中的微博内容:
* 1. 使用htmlunit提供的xpath方法获取;缺点速度太慢,而且不稳定