来源 | 凹凸数据(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 项目曾讨论永久禁止他出席会议!

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

Python爬虫并自制新闻网站,太好玩了相关推荐

  1. python官网 中文版 新闻-小伙Python爬虫并自制新闻网站,太好玩了

    作者:豆腐 来源:凹凸数据 大家好,我又来了,我是银牌厨师豆腐! 我们总是在爬啊爬,爬到了数据难道只是为了做一个词云吗? 当然不!这次我就利用flask为大家呈现一道小菜. Flask是python中 ...

  2. 小伙Python爬虫并自制新闻网站,太好玩了

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨豆腐 来源丨凹凸数据 大家好,我又来了,我是银 ...

  3. Python爬虫-爬取新闻网站,将数据对比去重插入数据库

    一.近期想实现一个推荐系统的API,目前正在筹备中,实现了一个新闻网站,用来做测试(大家可以看我以前的文章)今天分享的就是为我的新闻网站提供数据的爬虫代码 先看效果 检测到重复数据时程序是不会插入到数 ...

  4. 教你用Python爬虫自制有道翻译词典

    Python爬虫能够实现的功能有很多,就看你如何去使用它了.今天小千就来教大家如何去利用Python爬虫自制一个有道翻译词典. 首先打开有道翻译页面,尝试输入hello,就出现翻译了,可以自动翻译.有 ...

  5. python爬虫怎么挣钱-月薪45K的Python爬虫工程师告诉你爬虫应该怎么学,太详细了!...

    想用Python做爬虫,而你却还不会Python的话,那么这些入门基础知识必不可少.很多小伙伴,特别是在学校的学生,接触到爬虫之后就感觉这个好厉害的样子,我要学.但是却完全不知道从何开始,很迷茫,学的 ...

  6. Python爬虫实例:自制翻译机(简单)

    文章目录 Python爬虫实例:自制翻译机 要求实现功能:用户输入英文或中文,程序即可打印出来对应的译文. 步骤 解决反爬 上码 加界面 结果展示 Python爬虫实例:自制翻译机 一起试试爬取有道翻 ...

  7. 写 Python 爬虫 5 年,复制粘贴一直是我赖以生存的核心技能,直到我看到这些腾讯阿里大佬们的技术公众号,太强了...

    人与人之间的差异,很多时候在于细节和主动性,有的程序员习惯了复制粘贴,把这些当成自己的核心技能,也有大佬会把握技术细节,优化代码,而不是简单的复制粘贴,从根本上搞定问题.下面介绍一些技术圈的大厂程序员 ...

  8. python制作英语字典_Python爬虫之自制英汉字典

    最近在微信公众号中看到有人用Python做了一个爬虫,可以将输入的英语单词翻译成中文,或者把中文词语翻译成英语单词.笔者看到了,觉得还蛮有意思的,因此,决定自己也写一个玩玩~~ 首先我们的爬虫要能将英 ...

  9. Python爬虫:AcFun弹幕视频网!太清晰了!

    单个短视频 获取视频的信息 为了能够方便的解析与说明,就肯定会拿一个例子来才好的哇: [仙女UP特辑]AcFun Family Party --成都站(今天又是 lsp 的一天呢~~) 直接在浏览器端 ...

最新文章

  1. 让DJANGO里的get_success_url定义的reverse_lazy带参数跳转
  2. bitcoin cash的地址格式 cash addr 简介
  3. CTime,Systemtime的比较还有转换成日期格式。
  4. 没事写着玩 系列之 JQ连连看(很丑陋,很初级)
  5. java 配置hdfs集群_Hadoop集群搭建-04安装配置HDFS
  6. 晨哥真有料丨一定要在一个月内让她爱上你!
  7. mysql C where语句_mysql – 在WHERE子句中使用substr的SELECT语句
  8. GDAL插值使用示例
  9. 不要上网更新计算机系统的补丁程序,360安全卫士更新补丁后系统不能联网怎么办...
  10. fild与fmul的问题
  11. 一款轻量级的权限框架,轻松搞定项目权限
  12. 程序员如何让自己的技术能力突飞猛进?
  13. 2022 年度「博客之星」评选TOP 200进100结果已出炉
  14. 新媒体运营教程:实现用户增长5个步骤,5个基础方法
  15. 【信息技术】【2018】利用单摄像机系统进行航向估计的车辆跟踪
  16. Java中可变类型和不可变类型
  17. 致远a8-v5-6.0协同管理软件_Batteries for Mac(电池电量管理软件) v2.0
  18. oracle rollback作用,Oracle ROLLBACK语句(回滚事务)
  19. 2021美赛总结及常用网站
  20. SpringBoot项目启动,80端口被占用解决方法

热门文章

  1. [svc]caffe安装笔记-显卡购买
  2. 使用CSS3美化复选框checkbox
  3. Android系列讲座(2):为TextView组件加上边框
  4. VsCode中配置git
  5. 做行业研究时如何获取相关数据?
  6. matlab实例 pdf,matlab65实例教程(含语句注释).pdf
  7. Ubuntu安装QT后无法输入中文怎么办?
  8. pycharm远程调试或运行代码
  9. 【算法总结】数学问题-最大公约数和最小公倍数
  10. spring -- 自定义注解