from flask import Flask, request, jsonify
from dao.news_dao import NewsDao
from util import pack_result, spider
from flask_cors import CORS
app = Flask(__name__)
cors = CORS(app)
# 爬取接口
@app.route('/spider_news', methods=['POST'])
def spider_news():
sources = ['网易新闻', '搜狐新闻', '网易音乐', '搜狐体育']
# 得到要爬取的网站编号
my_json = request.get_json()
option = my_json.get('option')
# 保存结果
result_list = []
# 爬取新闻的短标题和网址
title_list, url_list = spider.get_url(option)
# 存储长标题,内容,日期
content_list = []
date_list = []
come_from_list = []
# 爬取新闻的长标题和内容和日期
for url in url_list:
content, date = spider.get_content(url=url, option=option)
content_list.append(content)
date_list.append(date)
come_from_list.append(sources[option-1])
# 将数据封装
for i in range(len(url_list)):
data = pack_result.get_news(url_list[i], title_list[i], content_list[i], date_list[i], come_from_list[i])
result_list.append(data)
# 存入数据库
my_news = NewsDao()
for i in result_list:
urls = my_news.get_all_urls()
if i['url'] not in urls:
my_news.add_news(i)
# 返回给前端消息
result_data = pack_result.get_result('', '爬取成功', 1001)
return jsonify(result_data)
@app.route('/get_news', methods=['POST'])
def get_news():
# 得到要爬取的网站
my_json = request.get_json()
keywords = my_json.get('keywords')
# 对关键字进行处理
keywords_list = keywords.split(' ')
result_keywords_list = []
for my_keywords in keywords_list:
if my_keywords != '':
result_keywords_list.append(my_keywords)
# 从数据库查询所有信息
my_news = NewsDao()
url_list, short_title_list, long_title_list, content_list, date_list = my_news.get_all_news()
# 数据封装
result_list = []
result_data = {}
for i in range(len(url_list)):
data = pack_result.get_news(url_list[i], short_title_list[i], long_title_list[i], content_list[i], date_list[i])
result_list.append(data)
# 如果关键字为空返回全部数据
if len(result_keywords_list) == 0:
print(len(result_list))
result_data = pack_result.get_result(result_list, '获取成功', '2002')
return jsonify(result_data)
else:
new_result_list = []
for i in range(len(result_list)):
for key in result_keywords_list:
if key in result_list[i]['short_title']:
new_result_list.append(result_list[i])
continue
print(len(new_result_list))
result_data = pack_result.get_result(new_result_list, '获取成功', '2002')
return jsonify(result_data)
@app.route('/get_content', methods=['POST'])
def get_content():
my_json = request.get_json()
url = my_json.get('url')
my_news = NewsDao()
long_title, content = my_news.get_content(url)
data = {
'long_title': long_title,
'content': content
}
return data
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
我开发了一个强大的Python后端爬虫系统,该系统具备以下主要功能: 网易新闻爬取:系统可以自动爬取网易新闻上的新闻内容,并将其保存到数据库中。用户可以通过系统提供的接口或界面,快速获取最新的新闻信息。 搜狐新闻爬取:系统同样可以爬取搜狐新闻上的新闻内容,并将其保存到数据库中。用户可以根据自己的需求,选择获取网易新闻或搜狐新闻的数据。 数据存储与管理:系统会将爬取到的新闻数据进行存储和管理,确保数据的完整性和可靠性。用户可以通过系统提供的接口或界面,对数据进行查询、筛选、排序等操作。 通过以上功能,该系统能够满足用户对新闻爬取的需求,提供了便捷的新闻数据获取和管理。同时,系统还具备良好的用户界面和友好的操作体验,让用户能够轻松上手并高效地完成各项操作。 无论是个人用户还是企业用户,都可以通过该系统实现对新闻数据的爬取和管理,为用户提供了一个高效、便捷的新闻资讯平台。该系统的稳定性和安全
资源推荐
资源详情
资源评论
收起资源包目录
back-end_python.zip (37个子文件)
back-end_python
app.py 3KB
dao
news_dao.py 2KB
__pycache__
news_dao.cpython-310.pyc 2KB
templates
.idea
code.iml 636B
vcs.xml 412B
workspace.xml 20KB
misc.xml 197B
inspectionProfiles
Project_Default.xml 722B
profiles_settings.xml 174B
modules.xml 267B
.gitignore 184B
spiders
spider_4.py 2KB
spider_1.py 2KB
spider_2.py 2KB
spider_3.py 2KB
__pycache__
spider_2.cpython-310.pyc 2KB
spider_4.cpython-310.pyc 2KB
spider_1.cpython-310.pyc 2KB
spider_3.cpython-310.pyc 2KB
__pycache__
app.cpython-310.pyc 2KB
test.py 34B
static
js
app.e0ac6318.js 5KB
app.e0ac6318.js.map 27KB
chunk-vendors.4167aa1f.js.map 4.14MB
chunk-vendors.4167aa1f.js 952KB
css
app.87b75e15.css 2KB
chunk-vendors.7c88cb4c.css 206KB
favicon.ico 4KB
index.html 657B
fonts
element-icons.f1a45d74.ttf 55KB
element-icons.ff18efd1.woff 28KB
util
pack_result.py 383B
dbUtil.py 451B
__pycache__
spider.cpython-310.pyc 1022B
pack_result.cpython-310.pyc 529B
dbUtil.cpython-310.pyc 570B
spider.py 1KB
共 37 条
- 1
资源评论
爱吃拌萝卜丝的兔子
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功