Python爬虫并自制新闻网站,太好玩了

news/2024/5/10 4:01:29/文章来源:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/108590924

来源 | 凹凸数据(ID:alltodata)

我们总是在爬啊爬,爬到了数据难道只是为了做一个词云吗?

当然不!这次我就利用flask为大家呈现一道小菜。

Flask是python中一个轻量级web框架,相对于其他web框架来说简单,适合小白练手。使用Flask+爬虫,教大家如何实时展示自己爬下来的数据到网页上。

先给大家展示一下这个丑丑的网页 ↓

(给个面子,别笑

演示三个功能

整个流程就是简单的三步:

  • 爬取数据

  • 利用实时爬取数据生成词云

  • 利用热点推荐新闻

爬虫部分

这次爬虫主要利用多线程方式爬取新浪新闻+网易新闻所有栏目新闻信息。

一共14个栏目,两个网站的页面信息都是通过ajax加载完成的,请求对应的栏目链接后,返回的字符串是这样的,仔细观察会发现我们要看的新闻内容被包含在data_callback里面

图2

是一个列表样式,

这时候我们就可以用eval函数将这个字符串处理成一个列表格式

def get_wy_teach():url = 'https://tech.163.com/special/00097UHL/tech_datalist.js?callback=data_callback'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}res = requests.get(url=url, headers=headers)# print(res.text)data = res.textdata = eval(data.replace('data_callback(','').replace(data[-1],""))

然后下面就可以循环提取出新闻内容了,最后一步就是存储到我们的mysql数据库中

当我们建立好14个栏目的爬虫后,再来编写一个主文件main,利用简单的多线程方法启动14个文件并行爬取14个栏目的新闻

def multi_thread():t1 = threading.Thread(target=xzg)t2 = threading.Thread(target=xz)#......t13 = threading.Thread(target=wy_hua)t14 = threading.Thread(target=wy_chn)t1.start()t2.start()#......t13.start()t14.start()

对了,爬虫之后我们还是做了词云的,哈哈哈

点击生成今日热点新闻词云,静待片刻

今日热点词汇

flask部分:

辅材处理完成,现在我们开始做主菜部分。

from flask import Flask,render_template,request#注册创建app应用,_name_是python预定义变量
app = Flask(__name__)#跨域请求cors
from flask_cors import CORSCORS(app, resources=r'/*')#启动爬虫页
@app.route('/test', methods=['GET'])
def mytest():main.multi_thread()time.sleep(10)return '爬取完成~'if __name__ == '__main__':app.run(debug=True,port=5000)
  • render_template, 用于渲染我们的h5页面

  • app = Flask(__name__),这个是flask的必写项,必须先定义模块名,用于设置路由路径(转接4)

  • cors跨域请求,一般用于ajax请求,CORS(app, resources=r'/*')定义app路由中所有路径都适用于跨域请求

  • @app.route('/test'),当你想使用mytest功能时候,设置了/test作用该函数的访问路径。例:http://49.233.23.230:5000/test

  • app.run(debug=True,port=5000),最后就是指定监听地址端口为 5000,debug=True是调试环境,用于生产环境时可更改为Flase。

这样一个个小小的Flask页面接口就完成了

接口写好了,下面我们来搞个h5页面,我们首先来建立一个简单hmtl文件(举例新闻推荐页面)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div align="" class="img"><h1>今日新闻推荐</h1><div class="img"><ul><li> <a href="{{data[0][1]}}">{{data[0][0]}}</a></li><li> <a href="{{data[1][1]}}">{{data[1][0]}}</a></li><li> <a href="{{data[2][1]}}">{{data[2][0]}}</a></li><li> <a href="{{data[3][1]}}">{{data[3][0]}}</a></li><li> <a href="{{data[4][1]}}">{{data[4][0]}}</a></li><li> <a href="{{data[5][1]}}">{{data[5][0]}}</a></li><li> <a href="{{data[6][1]}}">{{data[6][0]}}</a></li><li> <a href="{{data[7][1]}}">{{data[7][0]}}</a></li><li> <a href="{{data[8][1]}}">{{data[8][0]}}</a></li><li> <a href="{{data[9][1]}}">{{data[9][0]}}</a></li><li> <a href="{{data[10][1]}}">{{data[10][0]}}</a></li><li> <a href="{{data[11][1]}}">{{data[11][0]}}</a></li><li> <a href="{{data[12][1]}}">{{data[12][0]}}</a></li><li> <a href="{{data[13][1]}}">{{data[13][0]}}</a></li><li> <a href="{{data[14][1]}}">{{data[14][0]}}</a></li><li> <a href="{{data[15][1]}}">{{data[15][0]}}</a></li><li> <a href="{{data[16][1]}}">{{data[16][0]}}</a></li><li> <a href="{{data[17][1]}}">{{data[17][0]}}</a></li><li> <a href="{{data[18][1]}}">{{data[18][0]}}</a></li><li> <a href="{{data[19][1]}}">{{data[19][0]}}</a></li></ul></div><div class="logo-img"></div>
</div>

我们将从数据库中获取到的数据传入到h5文件

#新闻推荐
@app.route('/news')
def news_list():data = get_mysql()return render_template('index4.html', data=data)

复制粘贴20个li方便大家理解我设置今日推荐新闻条数是20条,

你也可以通过自己喜爱算法从数据库选择20条新闻推送的网页

刷新新闻与查看新闻

到这,一个简陋的 Flask 网站就完成了,是不是很简单。

Flask 是个小巧、灵活的web框架,可以让自己决定定制哪些功能,灵活定制组件,非常适用于小型网站。

结语:(网站想要漂亮,还是要学一下h5,别学我)

更多精彩推荐
  • B 站神曲 damedane:精髓在于换脸,五分钟就能学会

  • 怎样用 Python 控制图片人物动起来?一文就能 Get!

  • 脑机接口技术:融资噱头还是文明推手?

  • Linus Torvalds 回应,Debian 项目曾讨论永久禁止他出席会议!

  • 字节跳动斩获支付牌照欲建金融帝国,技术实力配得上野心吗?

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

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

相关文章

Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来

计算机领域有人说过一句名言&#xff1a;“计算机科学领域的任何问题都可以通过增加一个中间层来解决”&#xff0c;今天我们就用Spring-cache给网站添加一层缓存&#xff0c;让你的网站速度飞起来。本文目录 一、Spring Cache介绍二、缓存注解介绍三、Spring BootCache实战1、…

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之后你会发现你原来的想法很可能…

利用WxJava实现PC网站集成微信登录功能,核心代码竟然不超过10行

最近网站PC端集成微信扫码登录&#xff0c;踩了不少坑&#xff0c;在此记录下实现过程和注意事项。本文目录 一、微信开放平台操作步骤1.创建“网站应用”2.获取AppID和AppSecret二、开发指南三、开发实战1、pom.xml引入jar包2、配置文件添加对应的配置3、初始化配置4、控制层核…

你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!

一、缘起读大学的时候&#xff0c;有时候会感到很迷茫&#xff0c;不知道毕业之后可以做什么&#xff0c;自己能拿到多少的月薪。于是&#xff0c;就想到去参加一些公司的招聘。大二大三的时候&#xff0c;就去武大参加了武汉中地数码等3个公司的笔试。但是&#xff0c;没有交答…

从12306网站谈起虚拟主机选购注意事项

2019独角兽企业重金招聘Python工程师标准>>> “独在异乡为异客&#xff0c;每逢佳节倍思亲。”在临近年关的氛围下&#xff0c;尤其是只能通过火车才能归家的“游子”&#xff0c;是否也像笔者一样看着不能打开的12306网站望“票”兴叹呢&#xff1f;身为国内资深虚…

在任何设备上都完美呈现的30个华丽的响应式网站

如今&#xff0c;一个网站只在桌面屏幕上好看是远远不够的&#xff0c;同时也要在平板电脑和智能手机中能够良好呈现。响应式的网站是指它能够适应客户端的屏幕尺寸&#xff0c;自动响应客户端尺寸变化。在这篇文章中&#xff0c;我将向您展示在任何设备上都完美的30个华丽的响…

新浪微博推广网站的一些实践体会

本以为微博推广很难&#xff0c;每天都要刷粉刷内容的&#xff0c;也本以为做微博推广也很简单&#xff0c;一不卖产品、二不卖服务的&#xff0c;目的单纯灵活性强些&#xff0c;做了之后才发现都不是那么回事&#xff0c;微博虽然也过了“火了”&#xff0c;但新媒体还真是不…

windowsXP用户被禁用导致不能网站登录

1、查看系统事件&#xff0c;发现弹出如下的错误 2、根据上面的错误&#xff0c;我们很容易就可以判断是禁用了账户引起的 2.1后面进入计算机管理&#xff0c;再进入用户管理 2.2双击点开Internet来宾用于&#xff0c;发现此用户已经停用了。 2.3双击点开与IIS访问有关用户&…

AI 和 SEO 的结合:是福还是祸?

作者 | Vik Bogdanov翻译 | Katie,责编 | 晋兆雨头图 | 付费下载于视觉中国自成立以来&#xff0c;搜索引擎已经从基本搜索代理变成了基于人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;的复杂算法。这些创新技术从两个完全相反的角度影响搜索引擎优…

【云计算】云上建站快速入门:博客、论坛、CMS、电子商务网站统统

免费网站怎么建&#xff0c;空间也能免费吗?免费网站怎么建立&#xff0c;免费网站并非免费空间互联网真的有免费建站这等好事&#xff1f;现在制作一个网站已经越来越容易了&#xff0c;只要知道清晰的流程之后都是可以很快的建好一个企业或者个人网站的&#xff01;免费的建…

PrestaShop 网站后台配置(六)

转载请注明出处&#xff1a;http://www.cnblogs.com/zhong-dev/p/4943023.html 网店版本 Prestashop v1.6 配置邮箱店铺在客户下单之后&#xff0c;可以自动给客户发送邮件&#xff0c;要实现这个功能首先一点服务器要支持邮件功能。现在网店的运行环境是 amh 环境&#xff0c…

在 Azure 网站上使用 Memcached 改进 WordPress

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 和 Windows Azure 网站开发人员体验合作伙伴共同撰写。 您是否希望改善在 Azure 网站服务上运行的 WordPress 网站的性能&#xff1f;如果是&#xff0c;那么您就需要一个可帮助加快您…

微软惹的祸!CVPR提交网站最后1小时被挤崩,官方紧急延长36小时

视学算法报道 编辑&#xff1a;小咸鱼 好困【新智元导读】CVPR提交网站宕机了&#xff0c;而且还是在截止时间前的最后1个小时&#xff01;于是DDL被紧急延长了1天半。什么&#xff1f;CVPR 2022的论文提交网站居然在deadline之前一个小时崩掉了&#xff01;赶着DDL提交论文的…

域名年龄-SEO搜索引擎优化

为什么80%的码农都做不了架构师&#xff1f;>>> 域名年龄-SEO搜索引擎优化 在我们创建一个新的网站时&#xff0c;我们首先考虑到的是去注册一个新的域名。 有时发现我们 要注册的域名已经被注册了&#xff0c;于是就有两种方式&#xff1a; 一、重新注册另外的…

网络空间安全之信息追踪——学习笔记 利用门户网站,综合信息追踪

企业信息追踪与防护&#xff1a; 对于一个公司来说&#xff0c;只要牵扯到公司任一信息&#xff0c;都可以称之为公司的机密文件&#xff01; 知名门户网站搜索&#xff1a; 新华网&#xff1a;http://www.xinhuanet.com/ 党中央直接部署的&#xff0c;重大影响力&#xff01; …

1.lamp网站构建

bs、cs结构 及优缺点 s-server , c-client , b-broswer cs结构&#xff1a;客户端--服务器 &#xff0c; 比如QQ&#xff0c;首先要下载QQ客户端&#xff0c;之后是客户端与服务器连接 &#xff0c; bs结构&#xff1a;浏览器--服务器 &#xff0c; 浏览器直接登录的&#xff…

大型网站架构演变和知识体系

转载&#xff1a;http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 大型网站架构演变和知识体系之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的…

作者免费分享自己论文也不行,知名学术社交网站被判侵权,此前已下架20万余篇论文...

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达来源丨量子位编辑丨极市平台导读 知名学术社交网站ResearchGate被判下架50篇受版权保护的论文&#xff0c;并被要求对侵权内容负责。这场关于“开放获取”的官司&#xff0c…

强烈推荐可以玩上一整天的游戏网站

作为科技公司的一员&#xff0c;小普推荐能玩一整天的网站&#xff0c;当然是和编程有关的啦~ 强烈推荐一款以游戏形式学习python的网站&#xff1a; ▐ CheckIO CheckIO是一个Python代码游戏网站&#xff0c;用户可以通过编程来解决游戏中的各种任务&#xff0c;还可以与其他开…

添加HTML网站图标Favicon

网站图标是显示在浏览器选项卡中页面标题旁边的小图像。 <link rel"icon" type"image/x-icon" href"./favicon.ico"> 示例代码&#xff1a; <!DOCTYPE html> <html> <head><title>My Page Title</title>…