Java爬虫,数据采集经验分享
公司要求我采集网页中的某些数据,以下是我采集的步骤和思路,比较基础。
一.首先我是通过抓取网页源代码的方式,根据源代码,获取各种标签中的数据
public class GetData {//数据抓取核心类// 获取网页数据/** @param url:目标网址** @param encoding:编码*///url抓取数据(参数URL:就是你要抓数据的地址。如:http://www.cnev.cn/)public static String urlClimb(String url) throws Exception{URL getUrl =new URL(url); //创建URl连接HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection(); //建立连接connection.connect(); //打开连接BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); //创建输入流并设置编码StringBuffer sb = new StringBuffer();String lines = null;while ((lines = reader.readLine()) != null) {lines = new String(lines.getBytes(), "utf-8"); //读取流的一行,设置编码sb = sb.append(lines + "\n");}reader.close(); //关闭流connection.disconnect(); //销毁连接return sb.toString(); //返回抓取的数据(注意,这里是抓取了访问的网站的全部数据)}
}
二.通过Jsoup获取标签体内容(以京东为例)
(1)抓取title
(2)抓取标签中文本内容
(3)抓取所有的a标签中内容
代码如下
public class Demo {public static void main(String[] args) throws Exception {//第一条抓取title标签String result = GetData.urlClimb("https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_e931e367f5e34e07b1cb328f3bb899df");Document parse = Jsoup.parse(result);Elements title = parse.getElementsByTag("title");String Title = title.toString();System.out.println(Title);//抓“你好,请先登录”Elements login = parse.getElementsByClass("link-login");String Login = login.text();//.text()直接获取标签体中的内容System.out.println(Login);//抓取a标签所有内容Elements style = parse.getElementsByAttributeValue("style", "display:none");String data = style.text();System.out.println(data);//每个抓取到的中间都会有空格,所以直接用String中的split方法,全存入数组,遇到一个空格存一次String[] split = data.split(" ");for (int i=0;i<split.length;i++){System.out.println(split[i]);}}
}
下面是结果
有帮助的兄弟们点个赞,一起多交流,我也是小菜鸡一枚,大家一起进步
Java爬虫,数据采集经验分享相关推荐
- 微博scrapy爬虫实战经验分享
微博scrapy爬虫实战经验分享 这两天想要爬一些微博的数据,在github上找到了开源代码,但是在实际使用过程中遇到了很多困难,在此做一下记录. 安装MongoDB 首先安装MongoDB,Wind ...
- 进程管理程序java,运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析...
运维经验分享作为一个专题,目前共7篇文章 ====================================分割线====================================== C ...
- 三本可爱小表妹,面试小米Java技术岗经验分享(已拿offer)
前几天得知以前总是跟在我屁股后面的小表妹一次性拿下小米Java技术岗offfer,导致我越发觉得自己真心有点菜鸡,我弱小的心灵受到了一万点暴击! 首先介绍一下表妹的情况: 某理工类院校本科,之前一段实 ...
- Java基础学习经验分享
很多人学习Java,尤其是自学的人,在学习的过程中会遇到各种各样的问题以及难点,有时候卡在一个点上可能需要很长时间,因为你在自学的过程中不知道如何去掌握和灵活运用以及该注意的点.下面我整理了新手学习可 ...
- 学习半年Java的初次经验分享
班长叫我去分享一下学习经验,我总结了很多大佬的自学博客,在结合自己的实际经历,给大家分享了这篇自学博客,建议小白看,大佬请回避.小生自知资历不够,未来还会持续改进. 我从去年11月学的Java,到现在 ...
- java工程师面试经验分享1-面试准备
目录 前言 原因分析 面试准备: 1.复习 2.面试题&笔试题 3.简历 4.平台 1.很多朋友说我投了简历但就是一直没有面试通知. 2.很多人会问:我挑公司也需要时间,哪有时间投这么多家呢? ...
- Java学习方法和经验分享,小白看过来
这几天,近百名初学java粉丝咨询我如何自学java,因精力有限不能一一回复,现系统整理一套java初学者最佳的学习方法.误区.路线.大纲及资料,希望对你有所帮助. 我可以很明确的告诉你,学习java ...
- 爬虫学习经验分享-------某点评网站
某点评网站爬虫分享----0基础学习,解决反爬,加密,ip代理,封ip"403 Forbidden"等问题. 最近有个调查的项目,其中包含了对于网络数据的爬取.而之前我并没学过网络 ...
- 【java后台面经】春招秋招求职大佬面试经验分享
java后台面试经验分享 根据春招秋招的亲身经历细心总结 包括各大公司面试题目和面试小贴士 携程 jvm线程和操作系统线程区别 jvm栈和堆分别放什么 oom可能出现的情况 如何排查oom 项目中未登 ...
- Java面试题(二十)面试经验分享
面试经验分享 奇安信 启慧众智 中海庭 小源科技 普罗格 云粒科技 星辰 腾讯 DaoCloud 网化化工 源启科技 旷世科技 国能日新 十荟团 凌安科技 绿安健膳方 木仓科技 联易融数科 融捷科技 ...
最新文章
- linux查看网卡速度
- python编程 pdf-Python书单推荐一波【内含PDF下载地址】
- 【模型解读】“不正经”的卷积神经网络
- Hadoop大数据--Mapreduce程序运行并发度
- sdk编程改变static控件字体和颜色
- PAT-A Maximum Subsequence Sum
- python 傅里叶_基于python的图像傅里叶处理
- Spring Cloud 微服务入门(一)--初识分布式及其发展历程
- linux 日志 转存,如何记录linux终端下的操作日志(转)
- matlab2c使用c++实现matlab函数系列教程-load函数
- 《Python编程快速上手》8.9 实践项目
- WDM驱动程序的基本结构和实例
- CentOS7 (精简操作指令)
- UEFI学习(一)-EDK II环境搭建
- 计算机导论课后总结3
- Csapp-程序人生
- EXCEL输入数字编号总是变成日期的解决办法
- 会计学原理计算机实验,会计学原理实验报告.doc
- 生命周期组件框架:带有多状态机的单实现类
- vue 微信分享带图片,带title,带简介