今天需要将北京物业公司名称以及电话给整理出来,发现爱帮网上的数据比较多,自己一个一个的去摘取,太麻烦了,于是写一段代码来完成,并自动写入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");
}
}
相关推荐
产生10000-10000000的随机数 并写入TXT文档中
excel通过vba 批量读取word内表格的内容并写入excel
用sql server读取和写入excel文件,读取和写入数据非常方便,大批量数据导入与导出非常快
用Python将Word中的内容写入Excel
# 从MySQL数据库中获取表格的结构信息,然后将其写入Excel文件中。具体实现步骤包括: # 代码实现说明 # 1定义数据库连接信息和表名前缀; # 2创建一个新的Excel工作簿; # 3连接MySQL数据库,并创建游标对象; # 4...
C#操作EXCEL EXCEL类库 Excel模板处理 将DataTable数据写入Excel文件 C#数据写入EXCEL EXCEL样式管理帮助类库
使用RUBY语言将TXT文件中的内容写入到excel中!
labview写入EXCEL,自己写得小程序
vb Access数据写入Excel源码
Python将照片写入excel中,实现思路: 准备源图片,目标excel; 通过Pillow 来读图片的取像素(RGB); 通过openpyxl 向excel cell内填充十六进制色值; 最后把转换的RGB像素直接写入到excel中; 本次需要用到两个模块...
qt写入excel 基本的操作, QString fileName = QFileDialog::getSaveFileName(NULL,"Save File",".","Excel File (*.xls)"); fileName.replace("/","\\"); //这一步很重要,c:/123.xls保存失败,c:\123.xls保存成功...
本地list相关信息写入excel,调用该方法可以将你想写入excel 的字段写入excel中去
将数据写入EXCEL表格中的指定行,然后保存EXCEL
wincc7.4 用VBS将变量写入EXCEL,并能读取记录文件
C# 使用 精伦IDR210 通过接口 读取身份证信息,使用EPPLUS将信息写入excel.后台操作EXCEL,记录信息
Python使用xlwt、cx_oracle将数据库中的内容写入Excel表格
x写入Excel
把数据库查询出来的数据写入Excel文档可带图片
java读取和写入EXCEL文件,在myeclipse平台上运行!!
C# 读取excel里面内容再按照一定格式写入excel 在公司里搞的东东,拿出来是希望帮到真有需要的朋友