admin管理员组文章数量:1637212
技术使用:
- HttpClient
- HTMLCleaner
- Xpath
- 正则表达式
- mysql
想法
emmmm反正也是没工作的状态找点有趣的东西玩一玩就想到了爬虫项目。
主要采用HttpClient进行页面获取。HTMLCleaner进行数据清洗。使用Xpath进行数据定标,最后用正则表达式获得最终结果。并存储入数据库中。
其主要实现代码如下:
HttpClientBuilder builder=HttpClients.custom();
CloseableHttpClient client=builder.build();
HttpGet request=new HttpGet(url);
CloseableHttpResponse reponse=client.execute(request);
HttpEntity entity=reponse.getEntity();
String content=EntityUtils.toString(entity);
这段代码目的是获得HTML页面的代码并保存下来。
HtmlCleaner cleaner=new HtmlCleaner();
CleanerProperties CleanerProperties = cleaner.getProperties();
TagNode rootNode=cleaner.clean(page.getContent());
Object[] objects=rootNode.evaluateXPath("//*[@id=\"container_player\"]/div/div[1]/div[1]/div[2]/div[1]/div[1]/a/span");
if(objects.length>0) {
TagNode plnode=(TagNode)objects[0];
System.out.println(plnode.getText());
}
这段代码目的是将页面代码清洗并根据锚定节点获得其值。再之后使用正则表达式过滤数据。并存储入数据库中。
基本实现核心代码便是如此。
Xpath可以通过浏览器开发者模式中直接拷贝到。
另外能根据节点捕获其值也意味着可以不单独的获取单个页面而是可以分析总页面并进入子页面再进入详情页进行数据爬取。其思路大致如下:
1.获得总页面url 采集其页面的分页面url并进行保存。
2.对分页面进行采集所需页面url并进行保存。
3.采集具体页面数据并处理保存。
本项目期间遇到过的问题:
1.爬取的页面内容只有头尾
解决方案:模拟浏览器进行访问
HttpGet request 中有一个方法setHeader 将其设定User-Agent ,浏览器中对应的值。
2.爬取页面内容中文乱码
用String进行格式清理getByte后重设编码格式。
大体上就是这样
版权声明:本文标题:java爬虫实战腾讯视频网的总结 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1726539706a1074600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论