怎样抓取网页数据(【办公软件】解析html网页内容)

优采云 发布时间: 2021-11-18 06:07

  怎样抓取网页数据(【办公软件】解析html网页内容)

  ****************根据URL获取指定的网页内容********************

  私有静态字符串 getHtml(字符串路径){

   StringBuffer html = new StringBuffer();//保存整个html文档的数据

try {

//1.发起一个url网址的请求

URL url = new URL(path);

URLConnection connection = url.openConnection();

//2.获取网页的数据流

InputStream input = connection.getInputStream(); //字节流 一个字节一个字节的读取 中文占用两个字节

InputStreamReader reader = new InputStreamReader(input,"GBK"); //字符流 一个字符一个字符的读取 可指定字符集编码 ,常用字符集编码:GBK,GB2312,utf-8,ISO-8859-1

BufferedReader bufferedReader = new BufferedReader(reader); //字符流 一行一行的读取

//3.解析并且获取InputStream中具体的数据,并且输出到控制台

String line = "";

while((line = bufferedReader.readLine()) != null)

{

html.append(line); //将所有读到的每行信息line追加到(拼接到)html对象上

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return html.toString();

}

  ****************分析html页面内容********************

  私有静态列表 parseHtml(String html) {

  // 2.分析html网页内容

  文档文档 = Jsoup.parse(html);

   // 获取所有的招聘信息所在的div节点

Element div = document.getElementById("resultList");

// 获取div中所有的招聘信息的div

Elements jobs = div.getElementsByClass("el");

List jobList = new ArrayList();

for (Element job : jobs) {

// 工作名称

String jobName = job.getElementsByClass("t1").get(0).text().toUpperCase();

jobName = parseJob(jobName);

// 公司名称

String company = job.getElementsByClass("t2").get(0).text();

// 工作地点

String address = job.getElementsByClass("t3").get(0).text();

// 薪酬待遇

String salary = job.getElementsByClass("t4").get(0).text();

// 求平均值

double avgSalary = getAvgSalary(salary);

// 封装招聘信息

Job myJob = new Job();

myJob.setJobName(jobName);

myJob.setCompany(company);

myJob.setAddress(address);

myJob.setSalary(avgSalary);

// 将对象添加到集合里面

jobList.add(myJob);

}

return jobList;

}

  *******************解释***********************

  访问某个网站地址后,设置读取方式并解析内容,可以先到网页确认要爬取的数据,进入开发者模式(F12),看看网页的结构是什么样的 程序中首先得到的节点id为resultList,其中每一行数据的class为el,可以通过分析网页找到有用的信息,这样你可以更准确地爬到想要的数据

  

  获取到数据后,封装一条信息,然后将封装的信息添加到集合中。如果要对数据进行一些处理,可以封装信息处理方法并调用。

  接下来开始数据库操作...

  *********************结尾*************************

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线