python中用Scrapy实现定时爬虫的实例讲解


Posted in Python onJanuary 18, 2021

一般网站发布信息会在具体实现范围内发布,我们在进行网络爬虫的过程中,可以通过设置定时爬虫,定时的爬取网站的内容。使用python爬虫框架Scrapy框架可以实现定时爬虫,而且可以根据我们的时间需求,方便的修改定时的时间。

1、Scrapy介绍

Scrapy是python的爬虫框架,用于抓取web站点并从页面中提取结构化的数据。任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

2、使用Scrapy框架定时爬取

import time
from scrapy import cmdline
def doSth():
  # 把爬虫程序放在这个类里 zhilian_spider 是爬虫的name
  cmdline.execute('scrapy crawl zhilian_spider'.split())
# 想几点更新,定时到几点
def time_ti(h=17, m=54):
  while True:
    now = datetime.datetime.now()
    # print(now.hour, now.minute)
    if now.hour == h and now.minute == m:
      doSth()
    # 每隔60秒检测一次
    time.sleep(60)
time_ti()

3、更简单的写法

import time
import sys
import os
import datetime
def Dingshi():
while True:
os.system("scrapy crawl lcp")#lcp是我们爬虫的代码名字哦
time.sleep(60)
Dingshi()

知识点扩展:

直接使用Timer类实例代码

import time
import os
while True:
 os.system("scrapy crawl News")
 time.sleep(86400) #每隔一天运行一次 24*60*60=86400s或者,使用标准库的sched模块
import sched
#初始化sched模块的scheduler类
#第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler ( time.time, time.sleep )
#被周期性调度触发的函数
def func():
 os.system("scrapy crawl News")
def perform1(inc):
 schedule.enter(inc,0,perform1,(inc,))
 func() # 需要周期执行的函数
def mymain():
 schedule.enter(0,0,perform1,(86400,))
if __name__=="__main__":
 mymain()
 schedule.run() # 开始运行,直到计划时间队列变成空为止关于cmd的实现方法,本人在单次执行爬虫程序时使用的是 
cmdline.execute("scrapy crawl News".split())但可能因为cmdline是scrapy模块中自带的,所以定时执行时只能执行一次就退出了。

到此这篇关于python中用Scrapy实现定时爬虫的实例讲解的文章就介绍到这了,更多相关python中使用Scrapy实现定时爬虫内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python开发中range()函数用法实例分析
Nov 12 Python
TensorFlow saver指定变量的存取
Mar 10 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
Python元组常见操作示例
Feb 19 Python
python实现AES加密与解密
Mar 28 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
关于tf.reverse_sequence()简述
Jan 20 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
java关于string最常出现的面试题整理
Jan 18 #Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 #Python
python中四舍五入的正确打开方式
Jan 18 #Python
PyQt5中QSpinBox计数器的实现
Jan 18 #Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 #Python
PyQt实现计数器的方法示例
Jan 18 #Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 #Python
You might like
PHP4(windows版本)中的COM函数
2006/10/09 PHP
php中的常用魔术方法总结
2013/08/02 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
js格式化时间的方法
2015/12/18 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python装饰器初探(推荐)
2016/07/21 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
新护士岗前培训制度
2014/02/02 职场文书
广播体操比赛主持词
2015/06/29 职场文书