热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

赶工情况下的爬虫业务逻辑

FlightTrainTask定时任务,通过Spring的@Scheduled来定时调用@Scheduled(cron002**?)每天的16整点执行一

FlightTrainTask定时任务,通过Spring的@Scheduled来定时调用

@Scheduled(cron ="0 0 2 * * ?") // 每天的16整点执行一次,每一次请求一页数据
public void taskCycle() {
在此方法中, 将采集网址固定了,所以,ArticlegatherController没有启用。

采集模式,不同的网址,使用不同的采集方式,因此,出现了Timing1、Timing2、Timing3、Timing4、Timing5、Timing6共6个不同的采集类。

在Timing1类里的No1

0)输入采集URL地址,这个地址,打开后,是一个文章发布列表。

1)spiderTitle 采集标题

11)使用java.net.URL打开一个URL连接

12)使用BufferedReader包装InputStreamReader流

br = new BufferedReader(new InputStreamReader(url.openStream(), "gbk"));


13)正则匹配,通过Pattern.compile编译正则表达式

Matcher m = Pattern.compile("").matcher(buf);

根据获得的Matcher,取得title内容。

2)spiderURL 采集标题名连接

21)采集到新闻标题对应的href后,由于此href是相对地址,因此,加上网站域名,拼接成网站的URL链接。

3)goCopyContent采集内容

31)foreach ArrayList,将列表内容通过CopyContent循环抓取

4)CopyContent采集内容,使用Jsoup框架采集

41)设置post下载方式

doc = Jsoup.connect(con).userAgent("Mozilla/5.0").timeout(3000).post();

42)找到所有的p标签

Elements elements = doc.getElementsByTag("p");// 找到所有p标签

43)保存所有的正文内容saveArticle

5)文章保存saveArticle

保存方式:直接写文件到本地,然后将本机url存入数据库。简单,直接,爆炸,不用考虑磁盘空间情况,不用考虑文件读取速度,不用考虑性能。

		        File file = new File(src);

			FileWriter fw = new FileWriter(file, true);

			BufferedWriter bw = new BufferedWriter(fw);

			bw.write(NewLinkHref);

6)Filedown 获取文章链接里面的链接,主要是图片

if (".pdf".equals() || ".doc" || ".zip" || ".xls" || ".rar" || ".jpg" || ".bmp")

// 下载附件

sqlPic = catchPic(picurl);


7)catchPic下载附件

import java.net.HttpURLConnection;		

HttpURLConnection huc = (HttpURLConnection) url.openConnection();

			BufferedInputStream bis = new BufferedInputStream(ips);

				BufferedOutputStream bos = new BufferedOutputStream(
						new FileOutputStream());

				byte[] b = new byte[1024];
				int len = 0;
				// 将数据写入文件
				while ((len = bis.read(b)) != -1) {
					bos.write(b, 0, len);
					// 刷新资源------write方法使用完需要刷新
					bos.flush();
				}
				// 关闭流,释放资源
				bos.close();
				bis.close();
				ips.close();

3、对这段逻辑的评价

1)这是一个中级Java程序员的开发成果

2)从这端代码过程中看,开发人员没有从理论上,来考虑程序逻辑和架构,在当前互联网行业,这是通用,且常见的软件开发方式。



推荐阅读
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springboot项目引入jquery浏览器报404错误的解决办法
    本文介绍了在springboot项目中引入jquery时,可能会出现浏览器报404错误的问题,并提供了解决办法。问题可能是由于将jquery.js文件复制粘贴到错误的目录导致的,解决办法是将文件复制粘贴到正确的目录下。如果问题仍然存在,可能是其他原因导致的。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
author-avatar
陈雅杰昱宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有