如何简单的抓取网站数据

news/2024/5/11 1:25:23/文章来源:https://blog.csdn.net/csdnlrs/article/details/79680790

1.首先,用带debug的火狐浏览器,访问要抓取的网站,通过debug的控制台或网络找到数据的接口。


2.Spring框架自3.0版本起,自带了任务调度功能,好比是一个轻量级的Quartz,而且使用起来也方便、简单,且不需要依赖其他的JAR包。秉承着Spring的一贯风格,Spring任务调度的实现同时支持注解配置和XML配置两种方式。

  先来看下Spring常规定时任务的配置,如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:task="http://www.springframework.org/schema/task"  
  5.     xmlns:context="http://www.springframework.org/schema/context"  
  6.     xsi:schemaLocation="  
  7.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   
  8.         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd   
  9.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">  
  10.       
  11.     <context:component-scan base-package="com.pes_soft.task.demo" />  
  12.       
  13.     <!-- Spring注解方式配置调度任务 -->  
  14.     <task:executor id="executor" pool-size="3"/>  
  15.     <task:scheduler id="scheduler" pool-size="3"/>  
  16.     <task:annotation-driven executor="executor" scheduler="scheduler"/>  
  17. </beans>  

  注意:配置Spring定时任务时,需要在Spring配置文件的xml头部加入xmlns:task="http://www.springframework.org/schema/task"和xsi:schemaLocation位置中加入http://www.springframework.org/schema/task

 http://www.springframework.org/schema/task/spring-task.xsd

  

3.代码实现如下:

  1. 在定时任务类上增加@EnableScheduling注解,并实现SchedulingConfigurer接口。(值得注意的是:@EnableScheduling对Spring的版本要求比较高,一开始使用的3.2.6版本时一直未成功,后来改成4.2.5版本就可以了)
  2. 设置一个静态变量cron,用于存放任务执行周期参数。
  3. 另辟一线程,用于模拟实际业务中外部原因修改了任务执行周期(修改了周期时间,不用重启服务器)。
  4. 设置任务触发器,触发任务执行,其中就可以修改任务的执行周期。

  完整的SpringDynamicCronTask.java代码如下:

[java] view plain copy
  1. package com.pes_soft.task.demo;  
  2.   
  3. import java.util.Date;  
  4.   
  5. import org.slf4j.Logger;  
  6. import org.slf4j.LoggerFactory;  
  7. import org.springframework.context.annotation.Lazy;  
  8. import org.springframework.scheduling.Trigger;  
  9. import org.springframework.scheduling.TriggerContext;  
  10. import org.springframework.scheduling.annotation.EnableScheduling;  
  11. import org.springframework.scheduling.annotation.SchedulingConfigurer;  
  12. import org.springframework.scheduling.config.ScheduledTaskRegistrar;  
  13. import org.springframework.scheduling.support.CronTrigger;  
  14. import org.springframework.stereotype.Component;  
  15.   
  16. /** 
  17.  * Spring动态周期定时任务<br> 
  18.  * 在不停应用的情况下更改任务执行周期 
  19.  * @Author 许亮 
  20.  * @Create 2016-11-10 16:31:29 
  21.  */  
  22. @Lazy(false)  
  23. @Component  
  24. @EnableScheduling  
  25. public class SpringDynamicCronTask implements SchedulingConfigurer {  
  26.     private static final Logger logger = LoggerFactory.getLogger(SpringDynamicCronTask.class);  
  27.       
  28.     private static String cron;  
  29.       
  30.     public SpringDynamicCronTask() {  
  31.         cron = "0/5 * * * * ?";  
  32.           
  33.         // 开启新线程模拟外部更改了任务执行周期  
  34.         new Thread(new Runnable() {  
  35.             @Override  
  36.             public void run() {  
  37.                 try {  
  38.                     Thread.sleep(15 * 1000);  
  39.                 } catch (InterruptedException e) {  
  40.                     e.printStackTrace();  
  41.                 }  
  42.                   
  43.                 cron = "0/10 * * * * ?";  
  44.                 System.err.println("cron change to: " + cron);  
  45.             }  
  46.         }).start();  
  47.     }  
  48.   
  49.     @Override  
  50.     public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {  
  51.         taskRegistrar.addTriggerTask(new Runnable() {  
  52.             @Override  
  53.             public void run() {  
  54.                 // 任务逻辑  
  55.                 logger.debug("dynamicCronTask is running...");  
  56.             }  
  57.         }, new Trigger() {  
  58.             @Override  
  59.             public Date nextExecutionTime(TriggerContext triggerContext) {  
  60.                 // 任务触发,可修改任务的执行周期  
  61.                 CronTrigger trigger = new CronTrigger(cron);  
  62.                 Date nextExec = trigger.nextExecutionTime(triggerContext);  
  63.                 return nextExec;  
  64.             }  
  65.         });  
  66.     }  
  67. }  


  


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_826691.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用于加密研究的 5 大网站

用于加密研究的 5 大网站 DeFi是一个术语&#xff0c;指建立在区块链基础上的一组金融工具。这个想法是允许任何有互联网接入的人不经过中间商就可以借贷。DeFi是区块链和去中心化网络空间中增长最快的领域之一。 需要了解能够帮助您利用DeFi趋势的工具。DeFi工具提供了多种不…

10 个Web3 设计灵感网站

10 个Web3 设计灵感网站&#xff1a;Cosmos、Axies Infinity、DeSo Foundation、Foundation App、Llama、Snapshot、Juicebox、Alchemy、RabbitHole 正如Twitter前首席执行官Jack Dorsey最近发的一条推文“你不拥有web3&#xff0c;但风险投资家拥有”&#xff0c;而Marc Andre…

阿里云盾网站安全防御(WAF)的使用方法(图文)

2019独角兽企业重金招聘Python工程师标准>>> 将2个网站搬到阿里云&#xff0c;一个是因为阿里云稳定&#xff0c;另一个就是牛逼轰轰的云盾了。之前在博客联盟群里模拟CC攻击过搭建在阿里云ECS上的博客&#xff0c;结果云盾毫无反应&#xff0c;而网站已经挂了。 这…

05.网站点击流数据分析项目_模块开发_ETL

项目的数据分析过程在hadoop集群上实现&#xff0c;主要应用hive数据仓库工具&#xff0c;因此&#xff0c;采集并经过预处理后的数据&#xff0c;需 要加载到hive数据仓库中&#xff0c;以进行后续的挖掘分析。 ETL&#xff1a;用来描述将数据从来源端经过抽取&#xff08;ext…

关于'大热网'SEO及百度推广的研究(上)

基本概念 SEO&#xff1a;搜索引擎优化&#xff0c;简单来说就是 靠自己做优化&#xff0c;使得排名靠前&#xff0c;时间长见效慢。 SEM:搜索引擎营销&#xff0c;简单来说就是 给“baidu”等搜索引擎钱&#xff0c;通过推广竞价的方式&#xff0c;达到排名靠前的效果&#xf…

python+flask搭建CNN在线识别手写中文网站

使用pythonflask搭建的一个网站&#xff0c;然后从网页的写字板上获取鼠标手写的汉字经过转码后传回后台&#xff0c;并经过图片裁剪处理之后传入CNN手写中文识别的模型中进行识别&#xff0c;最后通过PIL将识别结果生成图片&#xff0c;最后异步回传给web端进行识别结果展示。…

flask微视频网站(环境准备)

文章目录简介项目结构蓝图数据库简介 跟着做一个微电影视频网站WindowsPython3.9.6MySQL8.0pycharm安装py虚拟环境# 不添加源就会失败&#xff0c;还提示你要升级pip&#xff0c;千万别升级&#xff01; pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.d…

flask视频网站(前端)

文章目录前端界面前台电影列表404后台小结前端界面 前端的搭建目前水平只能靠模板了 在templates中新建admin/home 前台 搭建顶部和底部&#xff0c;新建 home.html 这部分是所有页面都要用到的&#xff0c;后面的模板继承也是基于此&#xff0c;用block增加内容&#xff01…

flask视频网站(后台管理)

文章目录简介管理员登录标签管理电影管理电影预告管理会员管理评论管理电影收藏管理员密码修改日志管理操作日志管理员登录日志会员登录日志小结简介 这一部分要实现具体的后台管理逻辑基本逻辑如下&#xff1a; 管理员登录 将之前models中数据库的认证部分移动到app初始化…

flask视频网站(权限控制)

文章目录AuthRoleAdmin权限控制Auth 基于角色的访问权限控制 有的管理员只能访问日志&#xff0c;而有的能访问会员列表&#xff0c;有的管理电影这部分还属于admin 从创建表单模型开始&#xff0c;别着急class AuthForm(FlaskForm):"""访问权限控制"&quo…

ASP.NET Core 网站在Docker中运行

Docker作为新一代的虚拟化方式&#xff0c;未来肯定会得到广泛的应用&#xff0c;传统虚拟机的部署方式要保证开发环境、测试环境、UAT环境、生产环境的依赖一致性&#xff0c;需要大量的运维人力&#xff0c;使用Docker我们可以实现一次部署&#xff0c;到处运行。 本文介绍如…

给你介绍一个假的苹果网站,能肉眼看出来算我输!

这或许是用肉眼最难分辨的钓鱼网站&#xff0c;没有之一&#xff0c;不信你试试&#xff0c;能看出端倪吗&#xff1f; 网站的 URL 地址显示的是苹果官网&#xff0c;网址旁边是安全字样和绿色小锁&#xff0c;表示网站信息基于 https 加密传输&#xff0c;完全没什么问题&…

新手如何掌握制作和提交网站地图?

新手如何掌握制作和提交网站地图?网站地图作为根据网站的结构&#xff0c;框架&#xff0c;内容生成的导航网页文件。大多数人都知道网站地图对于提高用户体验有好处&#xff1a;它们为网站访问者指明方向&#xff0c;并帮助迷失的访问者找到他们想看的页面。那么什么是网站地…

006-网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具&#xff0c;比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

漫谈聚类--网站

http://blog.pluskid.org/?page_id78 转载于:https://www.cnblogs.com/lm3306/p/9347665.html

json在线解析及格式化验证网站

2019独角兽企业重金招聘Python工程师标准>>> https://www.json.cn/ 转载于:https://my.oschina.net/u/3766116/blog/1861799

成都SEO网站优化与新媒体流量互通_成都辰星建站

为什么80%的码农都做不了架构师&#xff1f;>>> 成都SEO企业网站优化流量来源途径与互联网新媒体列表及流量互通实施方案,新媒体运营在当下的互联网流量运营方式占据着举足轻重的作用,企业网站流量导入外链建设已经逐渐削弱,星的流量运营导入方式已经诞生&#xff…

电商网站架构探索|SOA分布式架构详解

目前很多的企业都有自己的电商网站&#xff0c;但随着业务量的增长&#xff0c;并发量高了。由于平台架构的一些不足&#xff0c;会导致一系列严重的问题&#xff0c;电子商务平台的安全性&#xff0c;承受能力也经受着严峻的考验&#xff0c;而市面上绝大多数的电商网站是业务…

百度关键词模拟发包php程序,PHP可视化百度小程序平台微信狗源码OEM招商加盟版(多套网站风格模板+一键搭建)...

【温馨提示】源码包解压密码&#xff1a;www.youhutong.com资源描述PHP可视化百度小程序平台微信狗源码OEM招商加盟版(多套网站风格模板一键搭建)源码介绍&#xff1a;它拥有以下几个特点&#xff1a;1、系统终身使用&#xff0c;可以生成无数小程序&#xff1b;2、自带多种行业…

log4j mysql 详细日志_log4j将日志存储到数据库_太平洋学习网|一个最全的javaweb,js,css,html5,csdn,android,linux的学习网站。...

log4j是javaEE日志输出文件&#xff0c;通常情况下我们都是把log日志输出到指定的日志文件中&#xff0c;在这儿我们使用log4j将日志存储到mysql&#xff0c;oracle数据库表中&#xff0c;使用log4j前必须引入log4j.jar 和commons-logging.jar这两个jar包。一&#xff1a;配置l…