使用WebMagic爬虫框架及javaEE SSH框架将数据保存到数据库(一)

19 篇文章 0 订阅
4 篇文章 1 订阅

由于近期做毕设,需要从网站上爬取教学资源,下面实现一个简单的爬虫,并将爬取的数据保存到数据库中。

一:有关爬虫框架的选取,我使用的是WebMagic爬虫框架,中文文档:http://webmagic.io/docs/zh/

它是一个开源项目,github地址:https://github.com/code4craft/webmagic,之前想用python写爬虫的,也写了一点,但还要学习操作数据库的,想想还是用java爬虫框架吧,做完毕设再好好学学python。

二:首先看一下要爬取的内容,专业名字、课程数量、专业类别、url链接,然后将其存入数据库


三:定义一个实体类,属性对应,由于使用的SSH框架,之后我们将爬到的数据给这个对象,然后保存对象即可。

四:爬虫具体代码:

(1)实现PageProcessor接口,并实现其中的方法,下面会使用到service,这里得到Spring容器对象,然后得到需要的service


(2)然后重写process方法,提取需要的内容,这里主要使用了xpath,还有很多方法, 具体看其中文文档。

之前我也用了正则表达式,有个网站可以进行正则表达式的转换,还不错:http://www.txt2re.com/

(3)然后封装成对象,保存到数据库即可。

其中抽取到的课程数量是在一段文字中,使用正则匹配得到其中的数字。



五:一些问题:

(1)由于我这个爬虫的抓取有分页,而且它的分页通过js跳转的,抽取出来感觉有点麻烦,我想直接得到所有的信息,发现可以通过输入url地址请求得到所有的信息(这是网站的一个小问题,它没有设置每页数据记录条数的范围),但是需要登录才可以进行url地址的访问,就要使用cookie模拟登录。

(2)下面分析有关登录信息的cookie,我使用的是chrome,点击如图位置,会看到此网站的cookie,(如果已经访问了一段时间了,可以清除所有cookie然后重新登录再访问,否则可能会有很多的cookie,分析起来不方便),由于只有5个cookie,直接加上就可以访问了,看步骤四(1)中site的设置。


六:测试结果

数据保存成功。


七:总结

这只是一个简单的爬虫,后面还要接着爬取数据,感觉还是可以学到很多东西的。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
可以使用以下步骤来使用JDBC连接数据库并验证数据: 1. 加载数据库驱动程序:在Java代码中使用Class.forName()方法来加载数据库驱动程序。例如,如果您使用的是MySQL数据库,则可以使用以下代码加载驱动程序: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接:使用DriverManager类的getConnection()方法来建立数据库连接。例如,如果您使用的是MySQL数据库,则可以使用以下代码建立数据库连接: ``` String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 创建Statement对象:使用Connection对象的createStatement()方法来创建Statement对象。例如,可以使用以下代码创建Statement对象: ``` Statement stmt = conn.createStatement(); ``` 4. 执行SQL查询:使用Statement对象的executeQuery()方法来执行SQL查询语句。例如,可以使用以下代码来执行一个查询,并将结果存储在ResultSet对象中: ``` String sql = "SELECT * FROM mytable WHERE id = 1"; ResultSet rs = stmt.executeQuery(sql); ``` 5. 处理结果集:使用ResultSet对象的next()方法来遍历结果集,并使用getXXX()方法来获取每个结果行中的数据。例如,可以使用以下代码来遍历结果集并将结果输出到控制台: ``` while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } ``` 6. 关闭连接和Statement对象:使用Connection对象的close()方法来关闭连接,使用Statement对象的close()方法来关闭Statement对象。例如,可以使用以下代码来关闭连接和Statement对象: ``` rs.close(); stmt.close(); conn.close(); ``` 通过以上步骤,您可以使用JDBC连接数据库并验证数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值