java简单的抓取网页数据
来源:互联网 发布:数据库管理师培训费用 编辑:程序博客网 时间:2024/06/09 17:06
用jsoup的select获取筛选元素
思路
1、通过url获取页面元素————2、用select抽取取有用的信息————3、拼装成想要的格式
例子
要在网上获取所有职业的名称(找工作app里让你选择某某行业的某某领域的某某职位)按等级插入数据库。
选取的网址:http://career.eol.cn/html/sy/zhiye/。
通过url获取页面元素
/** * @Description: 获取页面元素 * @return Document 返回类型 * @author yangjing * @date 2017-2-25 下午4:26:16 */ public static Elements getElements(String url, String select) { try { Document doc = Jsoup.connect(url).get(); Elements element1 = doc.select(select); return element1; } catch (IOException e) { e.printStackTrace(); } return null; }... prompt'''
用select抽取取有用的信息并拼接想要用的数据格式
/** * @Description: 筛选 * @return List<travedParam> 返回类型 * @author yangjing * @date 2017-2-25 下午4:33:29 */ public static List<TravedParam> selectDocment(Elements elements) { List<TravedParam> list = new ArrayList<>(); int parent_id2=0; int parent_id3=0; TravedParam travedParam=null; List<TravedParam> list2=null; int id=0; for (int i = 0; i < elements.size(); i++) { Elements as=elements.get(i).select("a"); for (int j = 0; j < as.size(); j++) { id++; Element a=as.get(j); if(a.className().equals("black_14b")){ //第一级 if(i>0){ list.add(travedParam); } travedParam=new TravedParam(); list2=new ArrayList<>(); travedParam.setId(id); String name=""; if(a.text().contains(">")){ name=a.text().substring(a.text().indexOf(">")+1); } travedParam.setName(name); travedParam.setLevel(1); travedParam.setParent_id(0); parent_id2=id; }else{ TravedParam travedParam2=new TravedParam(); travedParam2.setId(id); travedParam2.setName(a.text()); //第二级 travedParam2.setParent_id(parent_id2); travedParam2.setLevel(2); list2.add(travedParam2); travedParam.setParamList(list2); String url=a.attr("href"); if(!url.contains("http://career.eol.cn/html/sy/zhiye/")){ url="http://career.eol.cn/html/sy/zhiye/"+url; } String select=".border_c"; Elements elements3=getElements(url, select); Elements elements33=null; if(elements3.size()>1){ elements33=elements3.get(i).select("a strong"); } List<TravedParam> list3=new ArrayList<>(); parent_id3=id; for (int k = 0; k < elements33.size(); k++) { id++; Element element3=elements33.get(k); TravedParam travedParam3 = new TravedParam(); travedParam3.setName(element3.text()); travedParam3.setId(id); travedParam3.setLevel(3); travedParam3.setParent_id(parent_id3); travedParam3.setDescr(elements3.select("span").get(k).text()); list3.add(travedParam3); } travedParam2.setParamList(list3); } } } return list; }... prompt'''
整合上面两个方法写需求
/** * @author 作者yangjing: * @date 创建时间:2017-2-17 上午10:48:49 */public class Traved { public static void main(String[] args) { String url = "http://career.eol.cn/html/sy/zhiye/"; String select = (".border_c .line_23 p"); selectDocment(getElements(url, select)); }... prompt'''
想要的数据格式对象
package httpreq.guide;import java.util.Date;import java.util.List;/**@author 作者yangjing: * @date 创建时间:2017-2-25 下午4:28:21 */public class TravedParam { private int id; private String name;//名称 private String descr;//描述 private String logo;//logo private int parent_id;// private int level;//等级 private Date time;//时间 private List<TravedParam> paramList;//存放下级 public List<TravedParam> getParamList() { return paramList; } public void setParamList(List<TravedParam> paramList) { this.paramList = paramList; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescr() { return descr; } public void setDescr(String descr) { this.descr = descr; } public String getLogo() { return logo; } public void setLogo(String logo) { this.logo = logo; } public int getParent_id() { return parent_id; } public void setParent_id(int parent_id) { this.parent_id = parent_id; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; }}... prompt'''
详情
1、jsoup的官方中文文档为:http://www.open-open.com/
2、API为:http://jsoup.org/apidocs/
2 0
- java简单的抓取网页数据
- java抓取网页数据
- java网页数据抓取
- java 抓取 网页 数据
- java 网页抓取数据
- Java抓取网页数据
- java抓取网页数据
- java 抓取 网页 数据
- JAVA抓取网页的简单实现
- 使用java抓取网页的数据
- 网页数据的抓取
- java简单抓取网页源代码
- 利用Java抓取网页数据
- Java网页数据抓取实例
- Java抓取网页数据-----Jsoup
- Java网页数据抓取实例
- 利用Jsoup解析网页,抓取数据的简单应用
- R语言实现简单的网页数据抓取
- asmack 申请添加好友和对方同意添加
- iOS 修改searchBar cancel 按钮为取消 并修改颜色
- Android studio 插件下载失败(Connection failed with HTTP code 404)解决方法
- Tomcat配置https及访问http自动跳转至https
- vb adobc TEXT显示数据库数据使用方法
- java简单的抓取网页数据
- 动态代理:1 个经纪人如何代理 N 个明星
- 股票指标总结(一)
- java Servlet(三) 表单数据
- 【算法】程序猿不写代码是不对的23
- 关于Console控制台输出的玩法
- Eclipse安装svn插件的几种方式
- ssh-agent使用笔记(idea terminal无法 git pull)
- 查找死循环-飞行记录仪的使用