定时爬虫更新网站首页内容

news/2024/5/12 17:52:13/文章来源:https://blog.csdn.net/qq_39985298/article/details/90769523

每日更新网站的名言与图片

    • 前言
    • 具体流程
      • 用爬虫收集想要的信息
      • 将内容写入数据库
      • 设置定时脚本
      • 后端读取数据库

前言

我做自己网站时,觉得内容有点空洞,想到有道翻译首页每天都会更新图片和名言,还挺有意思的,不如我去抄一抄吧。

最后没抄有道翻译,而是去抄了ONE,因为我之前用爬虫爬过ONE的名言,为了省事,我就是这么懒。

先放上效果图
在这里插入图片描述
这个框里的图片、日期、格言会每日自动更新

在这里插入图片描述
这个是我参考的版式,要特别感谢帮我排版的妹子,拯救了我糟糕的审美,哈哈。

具体流程

用爬虫收集想要的信息

这里用的方法还是python的BeautifulSoup。在我之前的文章里详细说过用法,我也上传过代码到git上
用爬虫爬取 boss直聘 招聘信息文章链接

除了爬取名言外,还需要下载图片,用到了urllib.request.urlretrieve方法

urllib.request.urlretrieve(img_url,img_name)

也可以这么写,这样能看到下载进度

urllib.request.urlretrieve(img_url,img_name,download_schedule)def download_schedule(a,b,c):"""a:已经下载的数据块b:数据块的大小c:远程文件的大小"""per = 100.0*float(a*b)/float(c)if per > 100:per = 100print("a", a)print("b", b)print("c", c)print('{:.2f}%'.format(per))

将内容写入数据库

我用了Mysql数据库,设置了四个字段,id(主键 自增)、date(日期,string)、motto(名言,Text)、img(img_url,string)

爬虫爬取了相应信息后,用pymysql写入数据库,记录一下pymysql的用法

db = pymysql.connect(db_ip,user,pwd,db_name,charset='utf8')   //创建连接
cursor = db.cursor()   //设置游标
cursor.execute("DROP TABLE IF EXISTS t_motto")    //用了mysql原生语句创建一个表
sql = """CREATE TABLE t_motto (id INT NOT NULL AUTO_INCREMENT,date  CHAR(10),url  CHAR(80),motto TEXT(300),PRIMARY KEY (`id`))"""
cursor.execute(sql)  //执行mysql语句
db.close()   //关闭连接

插入数据:

db = pymysql.connect(db_ip,user,pwd,db_name,charset='utf8')   //创建连接
cursor = db.cursor()   //设置游标
sql = "INSERT INTO t_motto(date,url, motto) VALUES ( '%s', '%s', '%s')" % ('2019-05-23', './0604.jpg', '难来')
try:cursor.execute(sql)    //尝试执行mysql语句db.commit()
except:db.rollback()      //回档
db.close() 

设置定时脚本

我的服务器是ubuntu系统,因此我使用了linux系统的crontab执行定时任务(当然也可以用python的定时模块APScheduler,个人感觉还是crontab好用)

这里有个小坑,我发现ONE并不是过了晚上十二点就马上更新名言,于是我将定时脚本设置为早上六点执行,这样比较保险

crontab
文件路径:/etc/crontab
文件内容:

#运行环境
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin#分(0-59) 小时(1-23) 日(1-31) 月(1-12) dayofweek周几(0-6) 用户权限 执行的命令
m h dom mon dow user  command# *表示所有可用值  ‘/’可以用来表示每隔一段时间 minute:*/2表示每两分钟 run-parts表示运行文件夹所有脚本#写一个shell脚本用于执行python脚本,在crontab文件中新增一行定时执行该shell脚本的指令
 //查询所有用户的定时任务
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}  //查看当前用户的定时任务
crontab -l

后端读取数据库

从相应的表中,取出id最大的数据,用于显示在前端界面。
这里要注意图片路径问题,后端框架一般只认相对路径,如果在数据库里写的是绝对路径,就要再做一次转换。

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

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

相关文章

记一次攻击钓鱼网站

前言 一天我加班到很晚才回家,一打开steam,突然有人加我好友,我欣然接受,没想到这人上来就问我能不能给他投票,我一眼识破这肯定是想盗号啊,果不其然,他发来一个钓鱼网站。这个钓鱼网站是为了模…

跨网站请求伪造攻击

2019独角兽企业重金招聘Python工程师标准>>> 攻击者伪造目标用户的HTTP请求,然后此请求发送到有CSRF漏洞的网站,网站执行此请求后,引发跨站请求伪造攻击。 攻击者利用隐蔽的HTTP连接,让目标用户在不注意的情况下单击这…

C# 网站-数据库读取-查询功能的实现

apsx 页面: GridView 控件,Button控件,TextBox控件 aspx.cs页面 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.Web…

如何用IIS让局域网内的人都能访问我的电脑上的本地网站

装好IIS后 (不会安装下面有一个视频 或者百度IIS教程) https://www.bilibili.com/video/av9104866?t246 之后配置防火墙 http://www.win7zhijia.cn/win10jc/win10_24322.html

Java小应用目录快速变网站

1. 简介 快速将一个目录变成静态站点的Java小应用 2. 程序下载 https://github.com/broncho/oss/raw/master/blog/directory-website-1.0.0.jar 3. 依赖环境 JRE 1.6 4. 使用说明 5. 运行

对动态网站收集的注册信息进行处理

这篇blog是接着上篇 第一个动态网站的心得–细数建站跳过的坑! 写的,主要是对网站的云服务器上的access数据库导出来的数据进行处理加工。 数据类型和内容 access数据库userinfo的info表格下,一共有以下六个字段: number &…

基于Html的SEO(很基础,更是前端必须掌握之点)

2019独角兽企业重金招聘Python工程师标准>>> Html代码seo优化最佳布局&#xff0c;实例讲解 众所周知&#xff0c;搜索引擎对html代码是非常优化的&#xff0c;所以html的优化是做好推广的第一步。一个符合seo规则的代码大体如下界面所示。 1、<!–聚酯多元醇&am…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书&#xff0c;就应该有所收获&#xff0c;有所总结&#xff0c;最近把《大型网站技术架构》一书给看完了&#xff0c;给人的印象实在深刻&#xff0c;再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样&#xff0c;你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

5个适合零基础练习的Python刷题网站

知乎上有人问&#xff0c;有没有适合新手练习 Python 的做题类网站&#xff1f; 根据我刷题找资料的经验&#xff0c;推荐以下5个Python练习网站&#xff0c;都很良心 1、Github 这不是一个专门的刷题网站&#xff0c;而是代码托管平台&#xff0c;里面有数百万个Python项目…

爬虫python学习代码记录3-抓取某电商网站的商品数据

Python3 爬虫、数据清洗与可视化实战 第4章 大型爬虫案例&#xff1a;抓取某电商网站的商品数据 目录 抓取某电商网站的商品数据 封装代码&#xff0c;提高可读性 写一个程序test.py定时监控运行结果 爬虫效率优化 抓取某电商网站的商品数据 # 第4章 大型爬虫案例&#x…

鸿蒙os报名入口,鸿蒙os2 0公测版报名链接网站入口

鸿蒙OS2.0现在已经开启了招募活动&#xff0c;在手机中我们可以通过报名的方法来提前体验到这个系统&#xff0c;那么鸿蒙OS2.0公测招募怎么报名吧&#xff0c;下面就来本文中看看鸿蒙OS2.0公测招募报名网址以及报名条件说明介绍吧!鸿蒙OS2.0测试版资格申请网址鸿蒙OS2.0公测招…

太赞了,京东研发一哥力荐的高可用网站构建技术PDF,备好水,慢慢啃

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

终于拿到了2022阿里技术专家分享的552页大型网站架构实战PDF文档

说在前面 在笔者职业生涯的开端&#xff0c;曾参与了一个合同额每年亿元级的软件项目。 该项目有一个独特的架构&#xff0c;可以让开发人员近似千人一面地完成开发工作&#xff0c;加之该项目有严谨的项目管理流程&#xff0c;使得它迭代十几年至今。 之后参与了一个不太成…

随手记:发布网站时报错;文件创建完第一次无法写入数据

一、Asp.Net网站生成没问题&#xff0c;发布时报错&#xff1a;未能获得项目引用“XXX”的依赖项 解决方案&#xff1a;配置改成“Debug-any cpu” 补充&#xff1a;如果使用Release-any cpu&#xff0c;需要检查相关联的项目中Release文件夹中&#xff0c;可能缺少相关联的dll…

京东技术负责人纯手写:小团队构建大网站中小研发团队架构实战

本书结合作者近几年的工作经验&#xff0c;总结了一套可直接落地、基于开源、成本低、可快速搭建的中小研发团队架构实践方法。本书共5篇22章&#xff0c;开篇是本书的导读;架构篇是设计思想的提升&#xff0c;包括企业总体架构、应用架构设计、统- -应用分层等;框架篇主讲中间…

phpcms实现mysql读写分离_五指CMS(wuzhicms)开源网站管理系统 v4.1.0 简体中文 UTF8 正式版...

五指CMS(wuzhicms)开源网站管理系统简介五指cms由原phpcms V9 负责人王参加主导开发&#xff0c;前后台界面采用html5css3技术&#xff0c;可以进行跨屏、跨设备管理内容&#xff0c;极大的提升了用户体验。五指CMS(wuzhicms)开源网站管理系统功能特点描述模型化设计&#xff1…

一些Java技术相关的博客,专栏,和技术学习网站推荐?

推荐两个视频学习网站 慕课网 第一个推荐的学习网站应该是慕课网&#xff08;慕课网私聊我打钱哈&#xff01;&#xff09;&#xff0c;在我初学的时候&#xff0c;这个网站对我的帮助挺大的&#xff0c;里面有很多免费的课程&#xff0c;也有很多付费的课程。如果你没有特殊…

Chrome浏览器安装插件提示“无法从该网站添加应用,拓展程序或脚本”解决办法

新版的Chrome&#xff0c;只可以在官方商店中安装扩展。 准确的说&#xff0c;从主版本号67开始&#xff0c;以后所有版本的Chrome&#xff0c;都无法安装离线插件。 查看chrome版本的方法&#xff0c;在chrome地址栏&#xff0c;输入chrome://version/&#xff0c;回车就能查…

如何解决电商网站超卖现象

所谓超卖现象举例&#xff1a;比如某商品的库存为1&#xff0c;此时用户1和用户2并发购买该商品&#xff0c;用户1提交订单后该商品的库存被修改为0&#xff0c;而此时用户2并不知道的情况下提交订单&#xff0c;该商品的库存再次被修改为-1这就是超卖现象。 究其深层原因&…