从网站上抓住相应数据至excel
来源:互联网 发布:qq三国js要智力有用吗 编辑:程序博客网 时间:2024/06/14 15:48
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Kiwi {
public static void main(String[] args) throws IOException,
RowsExceededException, WriteException {
// TODO Auto-generated method stub
System.setProperty("webdriver.firefox.bin",
"E:\\测试资料\\firefox 29\\firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
String url = "https://list.tmall.com/search_product.htm?spm=875.7931836/B.subpannel2016049.73.10c849daXp8eDs&pos=1&cat=54448001&acm=201604133.1003.2.768874&scm=1003.2.201604133.OTHER_1459230500897_768874";
driver.get(url);
// driver.findElement(By.cssSelector("#login-info > a.sn-login")).click();
// driver.findElement(By.cssSelector("#J_Quick2Static")).click();
// driver.findElement(By.cssSelector("#TPL_username_1")).sendKeys(
// "13726285255");
// driver.findElement(By.cssSelector("#TPL_password_1")).sendKeys(
// "hlf862459");
// driver.findElement(By.cssSelector("#J_SubmitStatic")).click();
WritableWorkbook excel = Workbook.createWorkbook(new File("data.xls"));
WritableSheet sheet = excel.createSheet("奇异果", 0);
Label label;
label = new Label(0, 0, "价格");
sheet.addCell(label);
label = new Label(1, 0, "详情");
sheet.addCell(label);
label = new Label(2, 0, "店铺名称");
sheet.addCell(label);
label = new Label(3, 0, "月成交量");
sheet.addCell(label);
label = new Label(4, 0, "评价数");
sheet.addCell(label);
WebElement pages = driver
.findElement(By
.cssSelector("#content > div > div.ui-page > div > b.ui-page-skip > form"));
System.out.println(pages.getText());// 得出共12页
String pages_count = filter.filterNum(pages.getText());
System.out.println(pages_count);// 输出总页数
double count = Double.parseDouble(pages_count);
System.out.println("总共有" + count + "页");
// (count-1)*60+p_amount
for (int j = 0; j < 12; j++) {
List<WebElement> elements = driver.findElements(By
.cssSelector("#J_ItemList > div"));// 把所有循环出来
// #J_ItemList
int p_amount = elements.size();// 60
System.out.println("本页共有" + p_amount + "个");
List<WebElement> price = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productPrice > em"));
List<WebElement> detail = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productTitle > a"));
List<WebElement> shopName = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > div.productShop > a"));
List<WebElement> OK_amount = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productStatus > span:nth-child(1)"));
List<WebElement> talk = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productStatus > span:nth-child(2) > a"));
if(j<11){
for (int i = 0; i < p_amount; i++) {
label = new Label(0, (i + 1) + (p_amount * j), price.get(i)
.getText());
sheet.addCell(label);
label = new Label(1, (i + 1) + (p_amount * j), detail
.get(i).getText());
sheet.addCell(label);
label = new Label(2, (i + 1) + (p_amount * j), shopName
.get(i).getText());
sheet.addCell(label);
String cjl = filter.filterNum(OK_amount.get(i).getText());
label = new Label(3, (i + 1) + (p_amount * j), cjl);
sheet.addCell(label);
label = new Label(4, (i + 1) + (p_amount * j), talk.get(i)
.getText());
sheet.addCell(label);
}
WebElement nextPage = driver.findElement(By
.cssSelector("#J_Filter > p > a.ui-page-s-next"));
System.out.println(nextPage.getText());
nextPage.click();
}
else{
for (int i = 0; i < p_amount; i++) {
label = new Label(0, 660+(i+1), price.get(i)
.getText());
sheet.addCell(label);
label = new Label(1, 660+(i+1), detail
.get(i).getText());
sheet.addCell(label);
label = new Label(2, 660+(i+1), shopName
.get(i).getText());
sheet.addCell(label);
String cjl = filter.filterNum(OK_amount.get(i).getText());
label = new Label(3, 660+(i+1), cjl);
sheet.addCell(label);
label = new Label(4, 660+(i+1), talk.get(i)
.getText());
sheet.addCell(label);
}
}
}
excel.write();
excel.close();
driver.quit();
}
}
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Kiwi {
public static void main(String[] args) throws IOException,
RowsExceededException, WriteException {
// TODO Auto-generated method stub
System.setProperty("webdriver.firefox.bin",
"E:\\测试资料\\firefox 29\\firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
String url = "https://list.tmall.com/search_product.htm?spm=875.7931836/B.subpannel2016049.73.10c849daXp8eDs&pos=1&cat=54448001&acm=201604133.1003.2.768874&scm=1003.2.201604133.OTHER_1459230500897_768874";
driver.get(url);
// driver.findElement(By.cssSelector("#login-info > a.sn-login")).click();
// driver.findElement(By.cssSelector("#J_Quick2Static")).click();
// driver.findElement(By.cssSelector("#TPL_username_1")).sendKeys(
// "13726285255");
// driver.findElement(By.cssSelector("#TPL_password_1")).sendKeys(
// "hlf862459");
// driver.findElement(By.cssSelector("#J_SubmitStatic")).click();
WritableWorkbook excel = Workbook.createWorkbook(new File("data.xls"));
WritableSheet sheet = excel.createSheet("奇异果", 0);
Label label;
label = new Label(0, 0, "价格");
sheet.addCell(label);
label = new Label(1, 0, "详情");
sheet.addCell(label);
label = new Label(2, 0, "店铺名称");
sheet.addCell(label);
label = new Label(3, 0, "月成交量");
sheet.addCell(label);
label = new Label(4, 0, "评价数");
sheet.addCell(label);
WebElement pages = driver
.findElement(By
.cssSelector("#content > div > div.ui-page > div > b.ui-page-skip > form"));
System.out.println(pages.getText());// 得出共12页
String pages_count = filter.filterNum(pages.getText());
System.out.println(pages_count);// 输出总页数
double count = Double.parseDouble(pages_count);
System.out.println("总共有" + count + "页");
// (count-1)*60+p_amount
for (int j = 0; j < 12; j++) {
List<WebElement> elements = driver.findElements(By
.cssSelector("#J_ItemList > div"));// 把所有循环出来
// #J_ItemList
int p_amount = elements.size();// 60
System.out.println("本页共有" + p_amount + "个");
List<WebElement> price = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productPrice > em"));
List<WebElement> detail = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productTitle > a"));
List<WebElement> shopName = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > div.productShop > a"));
List<WebElement> OK_amount = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productStatus > span:nth-child(1)"));
List<WebElement> talk = driver
.findElements(By
.cssSelector("#J_ItemList > div > div > p.productStatus > span:nth-child(2) > a"));
if(j<11){
for (int i = 0; i < p_amount; i++) {
label = new Label(0, (i + 1) + (p_amount * j), price.get(i)
.getText());
sheet.addCell(label);
label = new Label(1, (i + 1) + (p_amount * j), detail
.get(i).getText());
sheet.addCell(label);
label = new Label(2, (i + 1) + (p_amount * j), shopName
.get(i).getText());
sheet.addCell(label);
String cjl = filter.filterNum(OK_amount.get(i).getText());
label = new Label(3, (i + 1) + (p_amount * j), cjl);
sheet.addCell(label);
label = new Label(4, (i + 1) + (p_amount * j), talk.get(i)
.getText());
sheet.addCell(label);
}
WebElement nextPage = driver.findElement(By
.cssSelector("#J_Filter > p > a.ui-page-s-next"));
System.out.println(nextPage.getText());
nextPage.click();
}
else{
for (int i = 0; i < p_amount; i++) {
label = new Label(0, 660+(i+1), price.get(i)
.getText());
sheet.addCell(label);
label = new Label(1, 660+(i+1), detail
.get(i).getText());
sheet.addCell(label);
label = new Label(2, 660+(i+1), shopName
.get(i).getText());
sheet.addCell(label);
String cjl = filter.filterNum(OK_amount.get(i).getText());
label = new Label(3, 660+(i+1), cjl);
sheet.addCell(label);
label = new Label(4, 660+(i+1), talk.get(i)
.getText());
sheet.addCell(label);
}
}
}
excel.write();
excel.close();
driver.quit();
}
}
阅读全文
0 0
- 从网站上抓住相应数据至excel
- 从网站上下载数据
- 从Excel中选择匹配数据 并根据数据移动相应文件
- 从网站上读取数据的方法
- 从网站上读取数据的方法
- 从页面上导出数据到Excel中
- 从网站上获取需要的数据实例(天气预报)
- 从网站上获取需要的数据实力(天气预报)
- 从网站上获取需要的数据实例(天气预报)
- 从国内招聘网站上的数据也能看
- 使用正则表达式,从网站上获取指定数据
- 使用正则表达式,从网站上获取指定数据
- C# 从需要登录的网站上抓取数据
- 安卓从其他网站上抓取数据例子
- 从Delphi中导出数据至Excel
- 从excel导入数据至PostgreSQL数据库
- 从Excel读写数据
- 从excel文件中获得数据,实现网站的批量查询数据功能
- 拦截导弹
- 静态分派与动态分派
- JSP 标准标签库(JSTL)与java代码段<%%>与js结合使用
- android接口回调总结
- JVM内存回收知识点图解(一)
- 从网站上抓住相应数据至excel
- 性能测试如何起步
- 【深度学习】笔记12:win10下的VS2013编辑代码的时候,非常卡顿,怎么样解决?
- Linux 中环境变量设置小结
- SQLite 文件锁和写同步
- Unity 接微软支付(C++/CX)
- javascript/js 原生动态引入外部css文件及动态插入css代码片段
- Java之CyclicBarrier使用
- FindBugs Java代码分析工具