网页抓取数据百度百科( 百度百科Selenium()用于Web应用程序测试的工具(图) )
优采云 发布时间: 2021-11-18 10:03网页抓取数据百度百科(
百度百科Selenium()用于Web应用程序测试的工具(图)
)
Eclipse 使用 Java Selenium 捕获众筹 网站 数据
Selenium 介绍 百度百科
Selenium 是一种用于 Web 应用程序测试的工具。Selenium 测试直接在浏览器中运行,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera等。该工具的主要功能包括:测试与浏览器的兼容性-测试您的应用程序可以在不同的浏览器和操作系统上运行良好测试系统功能-创建回归测试以验证软件功能和用户需求支持自动记录动作和自动生成.Net、Java、Perl等多种语言的测试脚本。
下载链接
我使用 Chrome 浏览器进行数据捕获。不同版本的Chrome需要下载对应的Selenium包。在右上角的帮助->关于 Chrome 中查看您自己的 Chrome 版本。这里也附上具体的Selenium下载地址,以帮助读者:
目标网站
这次我要爬网站疾病众筹网站——好筹。主页上有25个不同的显示窗口,存储了25个不同的案例。我需要获取这25个不同案例的具体信息,并跟踪记录每个案例的后续情况(后续案例可能不会出现在首页,但可能还有网址,项目会继续传播,人们有爱心可以继续捐赠)。
点击每个案例的具体情况就是这样一个页面,我会抓取每个具体案例的不同信息,比如标题、发起人姓名、目标金额、救助次数等。
实现整体架构的代码
DAO层——负责链接数据库和数据库中表的操作方法
模型层——负责实体数据模型的实现
Selenium 层——负责特定数据的捕获
UrlManage层——负责管理每个项目的URL属于辅助包,无后续应用
代码DAO层
DAO层有两个类
LinkDB 负责 Eclispe 和 Mysql 的连接
TableManage 负责具体数据库中表的操作
LinkDB 类
package DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class LinkDB {
public static Connection conn=null;
public static Statement stmt=null;
public LinkDB() {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功连接到数据库!");
conn= DriverManager.getConnection(
"jdbc:mysql://localhost:3306/qsc","root","123456");
stmt=conn.createStatement();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
表管理类
<p>package DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import Model.Belongings;
import Model.Classifiers;
import Model.DongTai;
import Model.Proofment;
import Model.QscProject;
import Model.TopHelper;
public class TableManage {
/*
* 创建指定名称的表
* tablename stmt
*/
public String CreateTable(String tablename,Statement stmt)
{
String creatsql = "CREATE TABLE "+tablename+"("
+ "title varchar(255) not null,"+"finished int(10),"+
"name varchar(255),"+"target varchar(255),"+
"already varchar(255),"+"helptimes varchar(255),"
+"date varchar(255),"+"des varchar(3000),"+"url varchar(300),"
+"zhuanfa varchar(255),"+"inindex int(10)"+")";
try {
stmt.executeLargeUpdate(creatsql);
System.out.println("创建表"+tablename+"成功!");
}catch(Exception e)
{
e.printStackTrace();
}
return tablename;
}
/*
* 完结的项目创捷Helper的存储表
*/
public String CreateHelperTable(String tablename,Statement stmt)
{
String creatsql = "CREATE TABLE "+tablename+"("
+ "name varchar(255) not null,"+
"money varchar(255),"+"people_bring varchar(255)"+
")";
try {
stmt.executeLargeUpdate(creatsql);
System.out.println("创建表"+tablename+"成功!");
}catch(Exception e)
{
e.printStackTrace();
}
return tablename;
}
/*
* 向Helper表中插入数据
*/
public void InsertToHelper(List helpers,String tablename,Connection conn)
{
for(int i=0;i