如何使用爬虫网页更新监控监控一系列网站的更新情况

如何使用爬虫监控一系列网站的更新情况_百度知道
如何使用爬虫监控一系列网站的更新情况
提问者采纳
爬虫是比较慢的,实时监控更新,可以下载网站更新监控工具。支持多个网站
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求搞过爬虫搜索,舆情监控系统的小伙伴,有项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
推荐学习书目
Python Sites
值得关注的项目
Python 编程
Sponsored by
国内领先的实时后端云野狗 API 可用于开发即时聊天、网络游戏、实时定位等实时场景传输快!响应快!入门快!
Promoted by
求搞过爬虫搜索,舆情监控系统的小伙伴,有项目
11:42:38 +08:00 · 3024 次点击
最好在上海
20 回复 &| &直到
05:05:40 +08:00
& & 12:16:30 +08:00
说得好简洁。。
& & 12:41:18 +08:00
可惜是Python
& & 12:54:54 +08:00
我想到一个看过的repo,当事人好像也在v2
& & 13:47:09 +08:00
& & 15:27:36 +08:00
有意向,请联系workemail2009[
& & 16:10:00 +08:00
@ 读了一遍没看懂 “国内敏感事件关键词列表” 是怎么来的。怎么用自然语言处理,结果发现是 “挑选了一些境外敌对网站”。。。原来分个词,统计下词频就叫自然语言处理了。
& & 16:38:27 +08:00
越简单越有内涵
& & 17:48:22 +08:00
@ exactly,有奔头的
& & 17:48:53 +08:00
@ 不局限于python
& & 17:49:58 +08:00
跟斯诺登干的事情差不多吗?
& & 19:14:18 +08:00
@ 我最爱爬虫,不过是Node.js,哈哈
& & 19:26:21 +08:00
一直在用python写,用的是别人的框架和中间件...
& & 19:45:09 +08:00
@ 私信我联系方式?
& & 23:29:21 +08:00
这个貌似有点兴趣,不过,我可不要做坏事!
& & 23:55:10 +08:00
@ 自觉实力不够...
& & 07:41:06 +08:00
我毕业设计是一个更简单的东西
- - 还在做
& & 07:50:37 +08:00 via iPhone
昨晚上课还在讨论舆情分析系统
& & 20:45:49 +08:00
大家不能助纣为虐啊
& & 22:39:02 +08:00
你的联系方式?
& & 05:05:40 +08:00
& · & 302 人在线 & 最高记录 1893 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.3 · 48ms · UTC 19:42 · PVG 03:42 · LAX 12:42 · JFK 15:42? Do have faith in what you're doing.语言:简体中文性质:国产软件软件大小:1.34 MB
网探网页数据监控软件现在各行各业都在应用互联网技术,网上的数据也越来越丰富。有些数据的价值是与时间相关的,早一点得知就会很有用,晚了可能价值已经归零。网探这个软件就是来解决这一类问题的,让你“时时先人一步”就是我们的目标。功能特点:☆基于IE览器对任何反爬虫技术手段无感 , 只要网页在IE浏...
免费版 | 无插件
人气: 188
语言:简体中文性质:国产软件软件大小:477 KB
螺丝刀网页监控软件,打开监测网址.txt,把需要监测网页地址输入,每行输入一个网页地址,打开软件,会自动导入地址,设置好监测频率、异常定义开始监测。螺丝刀网页监控软件功能:1、网站异常及时有效通知,不用担心网站出问题而无人知晓。2、提供网站访问数据,精准分析网站请求,不再为网站慢烦恼。3、提供...
免费版 | 有插件,有提示
语言:多国语言[中文]性质:国外软件软件大小:20.23 MB
Website Watcher 2015(网页监控软件)可以检查您”书签”里所有网站的更新情况,让您不用开启浏览器就可决定,要不要上去看最新的资讯。Website Watcher 2015(网页监控软件)软件特色:1.可以用日期变动或内容变动的方式来检查。2.可以自动选择”最好”的检查方式。3.有许多个”过滤器”可用;4.支持HTTP及FTP...
共享版 | 无插件
人气: 14743
语言:简体中文性质:国产软件软件大小:1.06 MB
明振网站监控工具功能强大,做到实时提醒,可任意设置发送时间,设置多个网站监测,开机启动等等功能,后期将不断的完善,匹配更多的用户群体。明振网站监控工具功能:1、网站实时监控24小时不间断监控,每60秒进行网站异常扫描; 双线程监控,不拖CPU,内存等资源。错误异常 自定 义 ,针对性的监控。双线程...
免费版 | 无插件
人气: 3097
语言:简体中文性质:国产软件软件大小:8.82 MB
木头网页自动提交监控工具是一个自动填写提交网页的工具软件,可同时监控提交后内容并报警提示。自动填写表单内容,可以从文件读取内容并自动填写到网页,填写完毕后自动提交。适合批量提交网页。用多线程高速提交可用于网站负荷测试。定时提交可实现在无人值守时自动填表并提交网页。完全模拟手工操作,展示...
共享版 | 无插件
人气: 4373
语言:简体中文性质:国产软件软件大小:8.40 MB
木头网页自动刷新监控工具是一个自动刷新网页的工具软件,可同时监控网页内容并报警提醒。提供多种刷新方式,使用代理服务器刷新可快速提升网站流量,包括独立IP访问量和页面访问量PV。使用多线程高速刷新可用于网站负荷测试。定时刷新可实时监控网站运营情况,网页直播展示实时页面及内容监控。木头网页自动...
共享版 | 无插件
人气: 4328
语言:简体中文性质:国产软件软件大小:1.20 MB
莽荒纪网页监控工具适用于喜欢看小说的书友与从事网站编辑事业的朋友,本工具可以定时监控网页中的内容,若网页发生变化将随时给予提醒。运行莽荒纪网页监控工具,输入监控网址,选择监控时间,开始监控即可。监控开始后程序将自动缩小界面并移动至电脑右下角,若您所监控的网页发生变化,程序将弹出提示框告...
免费版 | 无插件
人气: 1597
语言:简体中文性质:国产软件软件大小:201 KB
网页关键词监控大师是一款用于网页监控的软件,它可以定时刷新,保存网页,监控关键词,短信提醒。且包含了网页的简易浏览器。
网页关键词监控大师软件功能:
1.定时刷新网页:刷新频率可选择1、2、5、10、20、60、120分钟
2.定时保存网页:定时将指定网页完整..
免费版 | 无插件
人气: 6168
语言:简体中文性质:国产软件软件大小:563 KB
龙腾网页更新提醒软件可以随时监测你所关注的网站更新,并检查这些网站都做过哪些更新,使你无须重复的访问同一网站,它会自动检查你指定的网页,发出提醒声音,并记录详细更新日记,甚至可以设置免费的手机短信提醒,即使您不在电脑旁也一样了解你所关注的网站更新..
免费版 | 无插件
人气: 6969
语言:英文性质:国外软件软件大小:812 KB
一款为网页开发人员或管理员设计的工具包,用来在线测试一个或多个网站的有效性。它是通过有规则地向被监控的网站发送请求包来实现的。如果监控时发现返回的不是正常包,它就会把结果记录在日志里,在状态栏显示错误图标和发出警告声,并将错误信息发邮件给管理员。受监控网站返回的包可以保存为文本文件(TX...
共享版 | 无插件
人气: 1392
热门专题推荐3345人阅读
网络爬虫(2)
爬虫程序定时执行和监控示例
我们的爬虫程序在执行过程中,可能需要满足以下条件:
1、可以每天定时执行,爬取指定电商等网站内容。
2、可以对分布式爬虫进行监控,当爬虫程序挂掉之后,可以通知管理员。
下面我们来介绍如何实现这两个功能。
这里我们主要演示定时执行和监控功能,所以爬虫程序只是伪代码。如果想要详细了解如何实现网络爬虫,可以参考如下一些文章:
http://blog.csdn.net/u/article/category/6210222
Quartz调度框架
Quartz是一个完全由java编写的开源作业调度框架。尽管Quartz框架整合了许多额外功能, 但就其简易形式,你会发现它非常易用。简单地创建一个实现org.quartz.Job接口的java类。
Job接口包含唯一的方法:
public void execute(JobExecutionContext context)
throws JobExecutionE
在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz将密切注意剩余时间。当调度程序确定该是通知你的作业的时候,Quartz框架将调用你Job实现类(作业类)上的execute()方法并允许做它该做的事情。无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作业在随后再次被调用,Quartz框架将在恰当的时间再次调用它。
使用格式
首先Quartz Cron 表达式支持到七个域:
名称 &是否必须 &&&允许值 特殊字符
秒 &&是 &&0-59 &&&, - * /
分 &&是 &&0-59 &&&, - * /
时 &&是 &&0-23 &&&, - * /
日 &&是 &&1-31 &&&, - * ? / L W
月 &&是 &&1-12 或 JAN-DEC &, - * /
周 &&是 &&1-7 或 SUN-SAT &&, - * ? / L #
年 &&否 &&空 或
结构,以这个为例
0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
可以看到基本结构是 &&秒_分_小时_日_月_[周]_[年] 后面的周和年是可选的
其次,通配符,主要的有星号(*);问号(?);减号(-);逗号(,);斜杠(/);L字母;W字母;井号(#).
通配符含义:
星号:表示任意时刻
问号:只能在日或周字段上使用,如官方文档解释的那样,问号(?)的作用是指明该字段‘没有特定的值
减号:范围,如 1-5秒
逗号:列表,如 1,5,10 秒
斜杠:等步长序列,如3/13秒 表示 3,16,29,42,55,3,16...
L:仅在日和周上支持,表示允许的最后一个值,注意不要让范围和列表与L连用
井号:为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
使用示例:
&dependency&
&groupId&org.quartz-scheduler&/groupId&
&artifactId&quartz&/artifactId&
&version&1.8.4&/version&
&/dependency&
模拟的爬虫程序:
import java.text.SimpleDateF
import java.util.D
//添加quartz依赖
import org.quartz.J
import org.quartz.JobExecutionC
import org.quartz.JobExecutionE
//通过quartz实现定时任务需要实现Job接口
public class SpiderTaobao implements Job{
//重写Job中的execute方法
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//设置时间输出格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
String time = simpleDateFormat.format(new Date());
//打印爬虫执行时间
System.out.println(time);
//模拟爬虫程序
System.out.println(&爬取淘宝数据。。。。。。。。&);
定时器实现爬虫程序定时:
//添加quartz依赖
import org.quartz.CronT
import org.quartz.JobD
import org.quartz.S
import org.quartz.impl.StdSchedulerF
public class SpiderTimer {
public static void main(String[] args) {
//1获取一个默认调度器
Scheduler defaultScheduler = StdSchedulerFactory.getDefaultScheduler();
//2开启调度器
defaultScheduler.start();
//封装要调度的任务
String simpleName = SpiderTaobao.class.getSimpleName();
JobDetail jobDetail = new JobDetail(simpleName,Scheduler.DEFAULT_GROUP, SpiderTaobao.class);
//表示设置定时操作(每隔5秒执行一次)
CronTrigger trigger = new CronTrigger(simpleName,Scheduler.DEFAULT_GROUP, &0/5 * * * * ?&);
//3执行调度任务
defaultScheduler.scheduleJob(jobDetail, trigger);
} catch (Exception e) {
e.printStackTrace();
执行SpiderTimer 的打印结果:
我们使用Zookeeper对爬虫程序进行监控。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
Zookeeper的分布式安装配置和一些命令可以参考:
Zookeeper集群启动:
切换到集群所有主机Zookeeper的bin目录下,然后
./zkServer.sh start
//每台主机都开启Zookeeper
开启Zookeeper客户端:
切换到一台主机Zookeeper的bin目录下,然后
./zkCli.sh
//启动客户端
查看Zookeeper集群中节点信息:(创建临时节点后,在有效时间内,可以像以下这样查看临时节点)
1、我们主要使用Zookeeper中临时节点的特性实现对爬虫程序的监控。临时节点默认生存期为40秒(也可以在代码中自定义)。
2、我们创建一个监视器程序,监视器永不停止并且一直监控Zookeeper中临时节点是否存在,如果爬虫程序挂了,那么临时节点会在指定时间消失,监视器发现没有临时节点或者有新增节点后,可以执行代码(例如发邮箱等)通知管理员。
注意程序运行需要先开启Zookeeper集群
&dependency&
&groupId&org.apache.curator&/groupId&
&artifactId&curator-framework&/artifactId&
&version&2.8.0&/version&
&/dependency&
爬虫程序SpiderTaobao:
import java.net.InetA
import java.text.SimpleDateF
import java.util.D
//添加curator依赖
import org.apache.curator.RetryP
import org.apache.curator.framework.CuratorF
import org.apache.curator.framework.CuratorFrameworkF
import org.apache.curator.retry.ExponentialBackoffR
import org.apache.zookeeper.CreateM
import org.apache.zookeeper.ZooDefs.I
public class SpiderTaobao {
public SpiderTaobao(){
//指定zk集群的地址
String connectString = &192.168.33.130:.33.131:.33.132:2181&;
//1000 :代表是重试时间间隔
3:表示是重试次数
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//使用curator创建一个zk链接
int sessionTimeoutMs = 2000;//这个值必须在4s--40s之间,表示是链接失效的时间
int connectionTimeoutMs = 1000;//链接超时时间
CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, sessionTimeoutMs , connectionTimeoutMs , retryPolicy);
//启动链接
client.start();
InetAddress localHost = InetAddress.getLocalHost();
String ip = localHost.getHostAddress();
client.create()
.creatingParentsIfNeeded()//如果父节点不存在,则创建
.withMode(CreateMode.EPHEMERAL)//指定节点类型
.withACL(Ids.OPEN_ACL_UNSAFE)//指定节点的权限信息
.forPath(&/Spider/&+ip);//指定节点名称
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
SpiderTaobao spiderTaobao = new SpiderTaobao();
//设置时间输出格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
String time = simpleDateFormat.format(new Date());
//打印爬虫执行时间
System.out.println(time);
//模拟爬虫程序
System.out.println(&爬取淘宝数据。。。。。。。。&);
System.out.println(&爬取结束&);
监视器SpiderWatcher:&
import java.text.SimpleDateF
import java.util.D
import java.util.L
import org.apache.curator.RetryP
import org.apache.curator.framework.CuratorF
import org.apache.curator.framework.CuratorFrameworkF
import org.apache.curator.retry.ExponentialBackoffR
import org.apache.zookeeper.WatchedE
import org.apache.zookeeper.W
* 创建一个监视器,这个监视器需要实现watcher接口
* 接口中有一个process方法。
* 当监视器发现监视的节点发生变化的时候,这个process方法会被调用
* 所以这个监视器是一个守护进程,也就是说一个永远不会停止的进程,类似于死循环
public class SpiderWatcher implements Watcher {
List&String& childrenL
public SpiderWatcher() {
//在这需要指定监视的节点
//指定zk集群的地址
String connectString = &192.168.33.130:.33.131:.33.132:2181&;
//1000 :代表是重试时间间隔
3:表示是重试次数
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
//使用curator创建一个zk链接
int sessionTimeoutMs = 2000;//这个值必须在4s--40s之间,表示是链接失效的时间
int connectionTimeoutMs = 1000;//链接超时时间
client = CuratorFrameworkFactory.newClient(connectString, sessionTimeoutMs , connectionTimeoutMs , retryPolicy);
//启动链接
client.start();
//使用spiderwatcher监视器监视spider节点下面的所有子节点的变化情况(向spider节点注册监视器,这个监视器需要重复重复注册)
childrenList = client.getChildren().usingWatcher(this).forPath(&/Spider&);
} catch (Exception e) {
e.printStackTrace();
public void process(WatchedEvent event) {
//重复注册监视器
List&String& newChildrenList = client.getChildren().usingWatcher(this).forPath(&/Spider&);
for (String node : childrenList) {
if(!newChildrenList.contains(node)){
//设置时间输出格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
String time = simpleDateFormat.format(new Date());
//打印爬虫执行时间
System.out.println(time);
System.out.println(&节点消失:&+node);
//给管理员发送短信,或者邮件
//发短信的话可以使用一些第三方平台 云片网
//发邮件的话使用
for (String node : newChildrenList) {
if(!childrenList.contains(node)){
//设置时间输出格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(&yyyy年MM月dd日 HH时mm分ss秒&);
String time = simpleDateFormat.format(new Date());
//打印爬虫执行时间
System.out.println(time);
System.out.println(&节点新增:&+node);
this.childrenList = newChildrenL
} catch (Exception e) {
e.printStackTrace();
public void start(){
//为了保证让这个方法一直运行,因为这是一个监视器,不可以挂掉
while(true){
public static void main(String[] args) {
SpiderWatcher spiderWatcher = new SpiderWatcher();
spiderWatcher.start();
监视器启动后状态:
监视器捕获到的程序状态:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:107448次
积分:1487
积分:1487
排名:第19206名
原创:39篇
(8)(24)(8)更多公众号:ML幸福不是毛毛细雨,它不会从天上掉下来。人们需要补充能量,才有足够的资本应对生活。最新文章对这篇文章不满意?您可以继续搜索:百度:搜狗:感谢您阅读税务稽查用上了新手段——“网络爬虫”,本文由网友投稿产生,如果侵犯了您的相关权益,请联系管理员。QQ:

我要回帖

更多关于 网站更新监控工具 的文章

 

随机推荐