`

自动获取网页内容,然后写入excel文档中

 
阅读更多

 

今天需要将北京物业公司名称以及电话给整理出来,发现爱帮网上的数据比较多,自己一个一个的去摘取,太麻烦了,于是写一段代码来完成,并自动写入excel文档中,主要用的Jsoup 以及jxl 插件,很方便。

 

代码如下:

 

package com.bes.st.buz.website;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import com.bes.core.StringUtil;
import com.bes.st.rw.WriteFacade;

public class FetchUrl {

 /**
  * @param url
  * @return
  */
 public static List<WebsiteBean> fetchData(final String url) {
  List<WebsiteBean> result = new ArrayList<WebsiteBean>();
  try {
   Document doc = Jsoup.connect(url).timeout(10000).get();
   Elements es = doc.select("div.aside");
   for (int i = 0; i < es.size(); i++) {
    Elements aArr = es.get(i).select("a.title");
    Elements pArr = es.get(i).select("div.part1 p");
    Elements tArr = es.get(i).select("span.biztel");
    String str = StringUtil.nvl(aArr.attr("title"));
    String tel = StringUtil.nvl(tArr.text());
    if(str.length() == 0 || tel.length() == 0){
     continue;
    }
    WebsiteBean bean = new WebsiteBean();
    bean.setName(aArr.attr("title"));
    if(pArr.size()>0){
     bean.setAddress(pArr.get(0).text());
    }else{
     bean.setAddress(pArr.text());
    }
    bean.setTel(tel);
    result.add(bean);
   }
   
  } catch (Exception e) {
   e.printStackTrace();
  }
  return result;
 }
 
 public static void writeFetchData(List<String> urls){
  List<WebsiteBean> result = new ArrayList<WebsiteBean>();
  if(urls != null){
   for(String url : urls){
    result.addAll(fetchData(url));
   }
  }
  String output = "c:/tmp";
  File file = new File(output, "tt.xls");
  if (file.exists()) {
   file.delete();
  }
  OutputStream out = null;
  try{
  file.createNewFile();
  out = new FileOutputStream(file);
  WriteFacade.writeExcel(out, "物业公司", result);
  }catch(Exception ex){
   ex.printStackTrace();
  }finally{
   try{
    if(out != null){
     out.close();
    }
   }catch(Exception ex){}
  }
  
 }

 public static void main(String[] args) {
  List<String> urls = new ArrayList<String>();
  urls.add("http://www.aibang.com/?addr=%E5%85%A8%E5%B8%82&what=%E7%89%A9%E4%B8%9A&area=bizsearch2&cmd=noscript&script=false&city=%E5%8C%97%E4%BA%AC");
  for(int i=2;i<20;i++){
   urls.add("http://www.aibang.com/?area=bizsearch2&cmd=bigmap&city=%E5%8C%97%E4%BA%AC&a=&q=%E7%89%A9%E4%B8%9A&as=5000&ufcate=&rc=1&zone=&quan=&fm=&p=" + i);
  }
  writeFetchData(urls);
//  fetchData("http://www.aibang.com/?addr=%E5%85%A8%E5%B8%82&what=%E7%89%A9%E4%B8%9A&area=bizsearch2&cmd=noscript&script=false&city=%E5%8C%97%E4%BA%AC");
 }
}

 

分享到:
评论

相关推荐

    VBA提取文件夹内所有word文档中的表格数据

    我们可以使用 Word.Document 对象来访问 Word 文档中的表格,并将其数据写入 Excel 文档中。 知识点 7: 用户界面 在 VBA 中,我们可以使用用户界面来交互式地输入参数和显示结果。在本示例中,我们使用 TextBox 来...

    组态王报表保存成excel文件

    在提供的"组态王报表保存成excel.pdf"文档中,可能包含了具体的编程示例或步骤指导。通常,这个过程会涉及到以下几个关键步骤: 1. **导出数据**:通过调用组态王的API,获取报表中的数据。这可能涉及到对报表对象...

    lotus/domino提取Excel文件内容例库

    LotusScript提供了对Microsoft Excel文件的API支持,允许开发者打开、读取和写入Excel文件。在这个例库中,代理很可能是使用LotusScript的`Workbook`和`Worksheet`对象来操作Excel文件。`Workbook`对象代表整个Excel...

    jsp导出Excel;简单实用!导出Excel;导出Word

    此时,需要先进行数据处理,再将处理后的结果写入到Excel或Word文档中。此外,为了提高性能和用户体验,可以考虑分页导出,避免一次性加载大量数据导致内存溢出或页面响应慢。 总之,JSP导出Excel和Word是常见的...

    QTP Excel函数

    在`QTP Excel函数.doc`文档中,可能包含了上述函数的详细说明、示例代码以及常见问题解答,可以帮助读者深入理解并应用这些函数。对于进行QTP自动化测试的人员来说,这份文档是一份宝贵的参考资料。

    excel读写动态库

    OLE是微软提出的一种复合文档技术,它允许在一个文档中嵌入或链接其他文档或对象,如Excel表格可以嵌入到Word文档中。通过OLE,应用程序可以调用其他应用程序的接口,实现跨程序的数据交换和操作,这就是“Excel读写...

    word、Excel自动报表编程

    通过这些接口,你可以从数据库中提取数据,生成图表,然后将它们插入到Word文档中,形成专业的分析报告。这不仅可以减少手动操作的时间,还可以保证报告的一致性和准确性。 Excel API则提供了丰富的功能来处理电子...

    LabVIEWlv调用excel.rar

    此包中的“获取EXCEL文档中SHEET名字的列表 开发环境 LABVIEW 2014版本.vi”程序,显然用于读取Excel文件中的工作表(Sheet)名称,并将这些名称展示或用于后续处理。 在LabVIEW中,通过使用Microsoft的COM...

    java批量获取excel数据导入word文档中.zip

    本项目"java批量获取excel数据导入word文档中.zip"旨在解决一个特定的问题:自动化地从Excel文件中提取数据,并将这些数据整合到Word文档中。这种功能对于需要大量文书工作的专业人士,如律师,或者其他需要重复性...

    qt 界面数据保存到Word文件和Excel文件

    在Word文档中,书签是一种可以标记特定位置的元素,使得程序能够准确地找到并更新这些位置上的内容。开发者通常会创建一个预定义的Word模板,该模板包含预先设置好的布局、格式和书签。当用户在Qt界面输入数据后,...

    LabWindows CVI Word Excel 报表处理

    例如,你可以编写一段代码,将CVI中的数据分析结果以文本或图表的形式导出到Word文档中,形成专业级别的报告。同时,CVI也可以读取已有的Word模板,替换特定占位符,生成标准化的报告格式。 Excel作为数据处理和...

    ex.rar_Vc_ex_excel word转换

    5. **写入Word**:将从Excel读取的数据插入到Word文档中。可以是直接输入文本,也可以创建表格并填充数据。这可能涉及Word的Range对象和Table对象。 6. **格式调整**:如果需要,还可以对导入的数据进行格式调整,...

    JXL+IText把excel转换为PDF

    - **写入PDF**:将创建的表格添加到PDF文档中,使用Document对象的add方法。 - **保存PDF**:最后,关闭Document对象,将PDF内容写入文件。 4. **挑战与注意事项**: - **格式保持**:Excel和PDF有不同的布局...

    EXCEL集成工具箱V8.0完整增强版(精简)

    【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到EXCEL文档中。提供两种导入方式。 【EXCEL转文本】 将当前工作表中存储格的内容按指定分隔符号导出为TEXT文本,此为银行代发工资数据与邮局或银行传递...

    Python openpyxl模块实现excel读写操作

    在Excel文档中,有三个核心概念:Workbook、Worksheet和Cell。Workbook代表整个Excel文件,它可以包含多个Worksheet,每个Worksheet相当于Excel中的一个工作表,比如"Sheet1"、"Sheet2"等。而Cell则是最小的数据存储...

    EXCEL集成工具箱V6.0

    【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到EXCEL文档中。提供两种导入方式。 【EXCEL转文本】 将当前工作表中存储格的内容按指定分隔符号导出为TEXT文本,此为银行代发工资数据与邮局或银行传递...

    ParseWord07Test(EasyPOi word隐藏边框+图片遍历导出)

    在Word文档中,图片可以丰富文本内容,但有时我们需要单独处理或导出这些图片。EasyPOI提供了接口来遍历Word文档中的所有图片,并将它们保存到指定的文件系统或者进行其他操作。在`ParseWord07Test.java`文件中,很...

    Zhihu_voters

    Zhihu_voters使用python2.7编写,用来获取知乎某个答案下面所有点赞用户的信息,并自动输出到一个excel文档中。获取的用户信息包括用户名、用户个人主页地址、赞同、感谢、提问、回答。 写这个的初衷是因为有些时候...

    python实战项目源码-Word助手-含可执行文件.zip

    数据分析部分可能涉及到将Excel或其他数据源的数据整合到Word文档中,这可能使用了`pandas`库来处理数据,然后利用`python-docx`将处理后的数据插入Word。此外,`openpyxl`库可能用于处理Excel文件,以获取或更新...

    officedoc,matlab的office工具箱官网原版

    例如,你可以用`docwrite`函数将MATLAB中的变量值直接写入到Word文档中,或者用`excelfile`函数创建一个新的Excel工作簿并填充数据。 其次,officedoc工具箱提供了读取现有Office文档的能力。你可以用`docread`函数...

Global site tag (gtag.js) - Google Analytics