资源下载地址:https://download.csdn.net/download/sheziqiong/85811020
资源下载地址:https://download.csdn.net/download/sheziqiong/85811020
目 录
1 前 言 1
2 系统概述 2
2.1 课题背景与意义 2
2.1.1 课题开发背景 2
2.1.2 课题开发意义 2
2.2 课题开发工具 3
2.2.1 JAVA和JSP技术简介 3
2.2.2 Tomcat 6.0服务器架构 4
2.2.3 MyEclipse介绍 5
2.2.4总体开发 6
2.3 开发及运行环境 6
3 系统分析 8
3.1 系统概述 8
3.2 系统功能分析 8
3.2.1 可行性分析 8
3.2.2 具体功能分析 8
3.3搜索引擎的分类 9
l、全文索引式搜索引擎 9
2、垂直搜索引擎 9
3、元搜索引擎 9
4、目录索引式搜索引擎 9
5、其他非主流搜索引擎形式: 10
4 系统设计 10
4.1 数据库设计 10
4.1.1 数据库总体设计 10
4.1.2 数据库逻辑设计 11
4.2 系统总体设计 14
4.2.1 总体设计 14
4.2.2 系统逻辑处理 14
4.3 功能设计 15
4.3.1 网站登录页 15
4.3.2 系统界面 16
4.3.3 系统配置 17
5 系统实现与调试 18
5.1 系统实现概论 18
5.2 系统功能实现 18
5.2.1 文件结构图 18
5.2.2 文件详细结构图 20
5.3 关键技术实现 20
5.3.1 web.xml 20
5.3.2 数据库db_shopSystem连接部分 22
5.3.3 定时任务扫秒xml文件获取爬虫接口数据 23
5.4 调试过程中的常见错误 24
5.4.1 JDK配置错误 24
5.4.2 SQL空指针异常 25
5.4.3 数据库连接错误 25
6 结 论 26
致 谢 27
参 考 文 献 28
3 系统分析
3.1 系统概述
传统的网络爬虫技术主要应刷于抓取静态Web网页l 31.随着AJAX/Web2.0的流行,如何抓取AJAX等动态页面成了搜索引擎急需解决的问题,因为AJAX
颠覆了传统的纯HTTP请求/响应协议机制,如果搜索引擎依旧采用“爬”的机制,是无法抓取到AJAX页面的有效数据的。AJAX采用了JavaScript驱动的异步请求/响应机制.以往的爬虫们缺乏JavaScript语义上的理解.基本上无法模拟触发JavaScript的异步调用并解析返回的异步回渊逻辑和内容另外.在AJAX的应用中,JavaScript会对D0M结构进行大量变动,甚至页面所有内容都通过JavaScript直接从服务器端读取并动态绘制出来。这对习惯了D0M结构相对不变的静态页面简直是无法理解的由此可以看出.以往的爬虫是基于协议驱动的,而对于AJAX这样的技术,所需要的爬虫引擎必须是基于事件驱动的。要实现事件驱动,首先需要解决JavaScript的交互分析和解释的问题。
本设计主要研究网络爬虫程序的设计与实现,实现简单的可在后台自动运行的爬虫程序。爬取各个网站并下载图片到服务器,展示图片,图片展示应用瀑布流,响应用户请求。
3.2 系统功能分析
3.2.1 可行性分析
(1) 技术可行性:本系统的配置。
(2) 经济可行性:系统的配置,不需要昂贵的 EJB 服务器,开发成本低。
(3) 操作可行性:访问系统的主要有两种:用户,管理员。目前资源的利用情况和可操作性,只需少量的对数据库中的表的直接操作就可以实现系统的完整、稳定的运行,不会造成系统的巨大压力。
3.2.2 具体功能分析
目前,比较常见的网络爬虫搜索策略有以下三种:
1、广度优先搜索策略。其主要思想是,由根节点开始,首先遍历当前层次的搜索,然后才进行下一层的搜索,依次类推逐层的搜索。这种策略多用在主题爬虫上,因为越是与初始URL距离近的网页,其具有的主题相关性越大。
2、深度优先搜索策略。这种策略的主要思想是,从根节点出发找出叶子节点,以此类推。在一个网页中,选择一个超链接,被链接的网页将执行深度优先搜索,形成单独的一条搜索链,当没有其他超链接时,搜索结束。
3、最佳优先搜索策略。该策略通过计算URL描述文本与目标网页的相似度,或者与主题的相关性,根据所设定的阈值选出有效URL进行抓取。

3.3搜索引擎的分类
搜索引擎的分类主要有以下几种:
l、全文索引式搜索引擎
全文索引式搜索引擎是现今主流的搜索引擎,国内代表有Baidu,国外代表
有Google。全文索引式搜索引擎主要是将从因特网上提取到的与每个网页相关
的基本信息集中起来建立一个镜像数据库,借助检索数据库得到与查询条件相匹
配的全部记录,并按照一定的排列顺序呈现给用户。
全文搜索引擎按检索结果的来源角度来分,具体可以分为以下两大类:一类
搜索引擎其自身具备相对独立的网页提取、页面索引及检索系统(Indexer),也
具备独立的爬虫(Crawler)、“机器人"(Robot)程序或者“蜘蛛"(Spider)
程序,同时还具备独立的网页数据库,通过该网页数据库可以直接从中提取检索
信息,在国内外的大型全文搜索引擎中,Baidu和Google正是此类搜索引擎的典
型代表;另一类引擎其自身并不具备完整独立的数据库,必须借助于其他搜索引
擎的页面数据库,通过对该页面数据库进行检索并提取出相关的检索信息,此类
搜索引擎的代表如Lycos。
2、垂直搜索引擎
2006年互联网上逐渐出现了一类新的搜索引擎,即垂直搜索引擎。垂直
搜索与通用的网页搜索引擎相比,它主要是设计为了服务特定的检索领域和检索需求,如影视检索、票务检索、图书检索等,其专业化服务使其在这些特定的搜索领域具有更为出色的表现。此外,垂直搜索较通用的网页搜索引擎要求相
对较低的硬件成本、面向的用户需求相对特定化、查询的方式也可以是多种多样。
3、元搜索引擎
用户通过向元搜索引擎【131输入检索请求,该搜索引擎系统可以同时通过检索多个其他搜索引擎系统的网页数据库提取相关搜索结果,并将其按特定顺序排列呈现给用户。
国内外的元搜索引擎的代表有Dogpile(http://www.dogpile.corn)、InfoSpace等,搜星是比较具有代表性的中文元搜索。元搜索引擎的检索结果按一定的排序呈现,这种排列过程有的是基于来源排列检索结果,此类代表有Dogpile;有的依据特定规则排列,如Vivisimo。
4、目录索引式搜索引擎
目录索引式搜索引擎虽然具备一定的检索功能,但并不是严格意义上的搜索
引擎,它所实现的功能主要是借助一些搜索目录或者是分类目录来划分网站链接列表。用户可以选择借助于对这些分类目录进行检索来获取所需要的相关信息和资料,而不需要通过关键词(Keywords)的检索来获取目标信息。如今,新浪、
雅虎等都是目录索引式搜索引擎的的典型代表。
5、其他非主流搜索引擎形式:
MSN Search、AOL Saerch等门户搜索引擎在提供检索服务时,由于其自身
不具备独立的网页数据库也没有独立的分类目录,因而这类引擎的检索结果只能借助于其他搜索引擎来完成。集合式搜索引擎与元搜索引擎有着一定相似之处,也存在很大的差异,诸如它并不能同时对多个大型的全文搜索引擎系统进行同步检索,而需要由用户在其提供的常用搜索引擎列表中手动确定一个搜索引擎,然后对该搜索引擎中的数据库进行检索,HotBot就是此类搜索引擎的代表。
免费链接列表(Free For All Links,FFA)通常只提供滚动链接条目,少部分存在着比较简单的分类目录。
5.3 关键技术实现
5.3.1 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>LoginServlet</servlet-name><servlet-class>com.servlet.LoginServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>XitongshezhiServlet</servlet-name><servlet-class>com.servlet.XitongshezhiServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>UserServlet</servlet-name><servlet-class>com.servlet.UserServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>XinwenServlet</servlet-name><servlet-class>com.servlet.XinwenServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>FaguiServlet</servlet-name><servlet-class>com.servlet.FaguiServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>QicheServlet</servlet-name><servlet-class>com.servlet.QicheServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>PachongServlet</servlet-name><servlet-class>com.servlet.PachongServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>LiuyanServlet</servlet-name><servlet-class>com.servlet.LiuyanServlet</servlet-class></servlet><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>PinglunServlet</servlet-name><servlet-class>com.servlet.PinglunServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/LoginServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>UserServlet</servlet-name><url-pattern>/UserServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>XinwenServlet</servlet-name><url-pattern>/XinwenServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>FaguiServlet</servlet-name><url-pattern>/FaguiServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>QicheServlet</servlet-name><url-pattern>/QicheServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>PachongServlet</servlet-name><url-pattern>/PachongServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>LiuyanServlet</servlet-name><url-pattern>/LiuyanServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>PinglunServlet</servlet-name><url-pattern>/PinglunServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list>
</web-app>

5.3.2 数据库db_shopSystem连接部分

public static synchronized Connection getConn() {try {Properties properties = new Properties();properties.load(DBConn.class.getClassLoader().getResourceAsStream("jdbc.properties"));String driver = properties.getProperty("jdbc.driverClassName");String url = properties.getProperty("jdbc.url");String username = properties.getProperty("jdbc.username");String password = properties.getProperty("jdbc.password");Class.forName(driver);conn = DriverManager.getConnection(url, username, password);//conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=zuoyetijiao","sa","think");} catch (Exception e) {}return conn;}















资源下载地址:https://download.csdn.net/download/sheziqiong/85811020
资源下载地址:https://download.csdn.net/download/sheziqiong/85811020

基于JavaWeb的网站图片爬虫系统相关推荐

  1. 基于javaweb个人网站论坛的设计与实现(源码、论文、毕业设计、数据库文件)

    基于javaweb个人网站论坛的设计与实现 摘要 论坛作为一种新的生活上方式,工作方式和学习方式已经被大众所接受.并且在改变着人们的网络社交方式.随着越来越多的人在写论坛,论坛也正在影响着我们的生活. ...

  2. 基于JavaWeb的计算机网络在线测评系统(源码+数据库+论文)

    本系统是一个基于JavaWeb的计算机网络在线测评系统 本系统基于B/S结构的模式开发,通过网络给广大用户提供了比较可靠.方便.快捷的在线测评平台,系统主要实现了自动抽取试题.人工出题.套题选择.自动 ...

  3. 今天给大家介绍一篇基于javaWeb的汽车订票系统的设计与实现

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  4. 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)

    基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

  5. 基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...

  6. 基于javaweb的养老院综合服务系统(java+ssm+jsp+jquery+echarts+mysql)

    基于javaweb的养老院综合服务系统(java+ssm+jsp+jquery+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/i ...

  7. 基于javaweb+ssh的水果销售系统(java+SSH+mysql+maven+tomcat)

    基于javaweb+ssh的水果销售系统(java+SSH+mysql+maven+tomcat) 一.项目简述 功能: 区分为管理员用户和普通用户,普通用户:用户注册登 录,首页水果展示,商品分类展 ...

  8. 基于javaweb+springboot的在线游戏商城系统(java+Springboot+MyBatis+MySQL+Maven+layui+Jsp)

    基于javaweb+springboot的在线游戏商城系统(java+Springboot+MyBatis+MySQL+Maven+layui+Jsp) 一.项目简述 功能包括: 用户管理,游戏商品管 ...

  9. 基于javaweb的二手交易商城系统(java+jsp+javascript+servlet+mysql)

    基于javaweb的二手交易商城系统(java+jsp+javascript+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

最新文章

  1. 服务器虚拟化北向,KVM虚拟化的部署及使用
  2. 中国自动驾驶最大单轮融资诞生,丰田4亿美元领投小马智行
  3. Python中的*args和**kwargs是什么?该如何使用?
  4. Flutter 系列(一)安装与配置
  5. Android Activity初探
  6. 【Java文件操作(一)】递归打印文件目录
  7. 三相逆变器双pi控制器参数如何调节_一分钟看懂维也纳三相整流器
  8. 不创建 sequence 自增字段
  9. 图的遍历(广度优先遍历)- 数据结构和算法61
  10. 2020我国夏季洪涝主要受灾区卫星影像记录
  11. 华为手机卡在升级界面_华为安装升级包卡在5 华为手机如何刷机?
  12. Android 多国语言
  13. 计算机二级真题论文排版,计算机二级word真题:供应链的管理论文排版
  14. word页眉页脚修改
  15. 前端的岗位以及初步了解
  16. matlab 错误使用 connector.internal.autostart.run输入参数的数目不足。
  17. java css js 合并_java Web程序使用wro4j合并、压缩js、css等静态资源
  18. 转:车规芯片的AEC-Q100测试标准
  19. Microsoft Computer Vision APIs Distilled 免积分下载
  20. provider:SQL Network Interfaces,error:26 - 定位指定的服务器/实例时出错--错误原因及解决办法

热门文章

  1. Go编程 技巧 for range 和channl(除了select的另外一种)
  2. 数据库工单管理的流程及页面设计介绍
  3. 对Excel表与数据库的操作
  4. 视频剪辑软件比较实用的有哪些
  5. 递归的逻辑(1)——递归关系模型
  6. 如何白手起家?Linux中找不到curl命令怎么办?
  7. 黄荣奎:如何快速、便捷开发小程序
  8. 超51亿的移动用户,TensorFlow移动端方兴未艾
  9. 消防管件做的机器人图片_西安建筑工人用消防管件组装成机器人 可监测PM值会喷淋...
  10. ImageMagic参数