利用jsoup爬虫工具,爬取数据,并利用excel导出

时间:2022-10-31 11:35:02
 import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; public class aaaa {
public static void main(String[] args) {
aaaa t = new aaaa();
t.getExl();
}   //得到URL数据
public List<String> getText() throws IOException{
List<String>Url=new ArrayList<String>();
    //批量导入网址     String file = "shop.txt";
BufferedReader in = new BufferedReader(
new InputStreamReader(
new BufferedInputStream(
new FileInputStream(file)), "gbk"));
String str;
while((str= in.readLine())!=null){
Url.add(str);
System.out.println(str);
}
in.close();
return Url;
}   //将抓取的数据组合成json对象
public List<JSONObject> parseUrl() {
List<JSONObject>UTL=new ArrayList<JSONObject>();
try {
for(String url:getText()){       //将url这个网页解析成一个dom对象
Document doc = Jsoup.connect(url).get();       //筛选<a class="mall-icon">的所有对象
Elements hrefs = doc.select("a.mall-icon");       //遍历改对象数组
for(Element href:hrefs){         //对该对象的元素进行处理,包装成另一个url进行二级网站的数据抓取
String number=href.attr("data-uid");
String jsonurl="http://rate.taobao.com/ShopService4C.htm?userNumId="+number;
System.out.println(jsonurl);
Document doc1 = Jsoup.connect(jsonurl).get();
Element jsons=doc1.body();
JSONObject json=JSONObject.fromObject(jsons.toString().replaceAll("<body>|</body>", "").replace("&quot;", ""));
UTL.add(json);
}
} } catch (IOException e) {
e.printStackTrace();
}
return UTL;
}   //导出excel表格
public void getExl(){
try
{
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("行业统计");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("URL");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("行业均值");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("本店值");
cell.setCellStyle(style);
List<JSONObject>list=parseUrl();
List<String>url=getText();
System.out.println(list.size());
System.out.println(url.size());
for (int i = 0; i < list.size(); i++)
{
row = sheet.createRow((int) i + 1);
JSONObject json=(JSONObject)list.get(i);
JSONObject ratRefund=json.optJSONObject("ratRefund");
// 第四步,创建单元格,并设置值
System.out.println(i);
row.createCell((short) 0).setCellValue("淘宝淘宝");
row.createCell((short) 1).setCellValue(ratRefund.optString("indVal"));
row.createCell((short) 2).setCellValue(ratRefund.optString("localVal"));
}
FileOutputStream fout = new FileOutputStream("E:/taobao.xls");
wb.write(fout);
fout.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

利用jsoup爬虫工具,爬取数据,并利用excel导出的更多相关文章

  1. python爬取数据保存到Excel中

    # -*- conding:utf-8 -*- # 1.两页的内容 # 2.抓取每页title和URL # 3.根据title创建文件,发送URL请求,提取数据 import requests fro ...

  2. sumafan&colon;python爬虫多线程爬取数据小练习(附答案)

    抓取 https://www.cnbeta.com/ 首页中新闻内容页网址, 抓取内容例子: https://hot.cnbeta.com/articles/game/825125 将抓取下来的内容页 ...

  3. 使用htmlparse爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  4. 使用htmlparser爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  5. 【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

    实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart  难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install ...

  6. python爬虫项目-爬取雪球网金融数据(关注、持续更新)

    (一)python金融数据爬虫项目 爬取目标:雪球网(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_ ...

  7. PYTHON 爬虫笔记九&colon;利用Ajax&plus;正则表达式&plus;BeautifulSoup爬取今日头条街拍图集(实战项目二)

    利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集 目标站点分析 今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方 ...

  8. Python使用Scrapy框架爬取数据存入CSV文件&lpar;Python爬虫实战4&rpar;

    1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...

  9. 【Spider】使用CrawlSpider进行爬虫时,无法爬取数据,运行后很快结束,但没有报错

    在学习<python爬虫开发与项目实践>的时候有一个关于CrawlSpider的例子,当我在运行时发现,没有爬取到任何数据,以下是我敲的源代码:import scrapyfrom UseS ...

随机推荐

  1. Oracle 12c SYSAUX表空间不足处理-清理audsys&period;cli&lowbar;swp&dollar;a9b5f52c&dollar;1&dollar;1表

    今天在检查一台测试环境的表空间时,发现SYSAUX的使用率已经达到99.91% TABLESPACE_NAME FILES Freesize(MB) Usedsize(MB) Filesize(MB) ...

  2. 微博java SDK介绍及使用说明

    转自:作者:新浪微博 开放平台 @MUNTO_AKIRA http://open.weibo.com/blog/%E5%BE%AE%E5%8D%9Ajava-sdk%E4%BB%8B%E7%BB%8D ...

  3. JAVA设计模式之调停者模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式.调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用.从 ...

  4. HTTP权威指南----缓存

    缓存的处理步骤: 1.接收----缓存从网络中读取抵达的请求报文2.解析----缓存对报文进行解析,提取出URL和各种首部3.查询----缓存查看是否有本地副本可用,如果没有,就获取一份副本(并将其保 ...

  5. iOS中发送xml给服务器

    转载自:http://www.cocoachina.com/bbs/read.php?tid-456019.html 一.用URLSession请求 NSString *soapStr = [NSSt ...

  6. java学习之异常笔记

    异常处理使用try catch finally throw throws 如果try中有执行到return后, 也会执行finally中的语句之后再跳出方法. 异常是对于某种错误情况的描述,是告诉方法 ...

  7. Spring &lpar;三&rpar;

    1.1 Spring的事务管理 1.1.1事务 事务:指的是逻辑上一组操作,要么全部成功,要么全部失败. 事务特性: 原子性:事务不可分割. 一致性:事务执行前后,数据完整性保存一致. 隔离性:一个事 ...

  8. python中的基本数值计算

    最近用到了python的数字信号处理,发现很多以前学的都忘掉了,这里做个笔记 # -*- coding: utf-8 -*- #计算乘方 print pow(3,4) #计算平方 import num ...

  9. 03-12&lowbar;MBean层次结构

    本文重点: Mbeans层次结构与WLST关系介绍 WebLogic Mbeans的类型 weblogic服务器的MBeans生命周期             Mbeans层次结构与WLST关系介绍: ...

  10. 用Hi3518EV200板当spi烧录器

    1. setenv bootargs setenv bootcmd 2.ddr烧录uboot 3.uboot下tftp下载文件 mw.b ff ;tftp ;sf erase ;sf write ; ...