博客
关于我
使用python将新闻爬取保存进sqlite数据库并读取输出屏幕
阅读量:746 次
发布时间:2019-03-22

本文共 1029 字,大约阅读时间需要 3 分钟。

系统简介

本系统旨在从指定新闻网站自动抓取新闻内容和相关图片,并将数据存储在SQLite数据库中。用户可以通过菜单驱动式界面进行操作,包括新闻和图片的增删改查。系统采用以下主要技术:

  • 网页抓取:使用Scrapy框架以无痕模式抓取网页内容。
  • 数据库存储:使用SQLite数据库存储新闻文本和图片数据。
  • 图片处理:采用Base64编码存储图片数据,提取图片路径并下载。
  • 自动生成shell脚本:通过脚本自动化操作,减少人工干预。
  • 系统结构

    数据库设计

  • News 表:

    • id:自动递增数值型,作为主键。
    • name:文本型,存储新闻标题。
    • content:文本型,存储新闻正文。
  • Tupian 表:

    • picture:blob型,存储Base64编码后的图片文件。
  • 功能模块

    1. 爬虫模块

    • 方法:
      • get_news:抓取新闻和图片。
    • 工作流程:
    • 建立连接,初始化数据库和表。
    • 发送HTTP请求获取网页内容。
    • 使用正则表达式提取新闻标题、正文和图片路径。
    • pruning重复图片文件并存储Base64编码的图片数据。

    2. 图片处理模块

    • 方法:
      • save_images:将 Base64 码转回图片并存储。
    • 工作流程:
    • Base64 解码。
    • 将图片文件写入本地存储。
    • 删除临时文件,释放内存。

    3. 数据库交互模块

    • 方法:
      • update_database:更新数据库内容。
    • 工作流程:
    • 执行数据库更新语句。
    • 提取新闻标题和图片路径。
    • 根据要求更新对应数据。

    用户交互界面

    系统提供按键式菜单界面,用户可选择操作项包括:

    • 1. 爬取新闻和图片:执行抓取并存储操作。
    • 2. 输出新闻列表:显示数据库中的新闻内容。
    • 3. 输出图片列表:逐个显示并可下载图片文件。
    • 4. 退出系统:退出程序。

    系统优化

    代码层面

  • 紧凑代码结构:
    • 将长代码段分解为多个函数,提高可读性。
  • 提高效率:
    • 使用线程同时下载图片,降低处理延迟。
  • 错误处理:
    • 增加异常捕获机制,确保程序稳定运行。
  • 数据库优化

  • 划分缓存表:
    • 将常用的查询结果缓存到临时表,提高查询效率。
  • 索引优化:
    • 为常用查询字段建立索引,减少查询时间。
  • 内存管理

  • 临时文件清理:
    • 定期清理旧图片和临时文件,释放存储空间。
  • 空闲资源监控:
    • 定期扫描空闲连接,释放资源。
  • 总结

    通过上述优化,本系统能够高效、可靠地完成新闻和图片抓取任务,同时具备良好的用户交互界面和数据库管理功能。如果有具体需求,可以根据实际情况进一步功能扩展和性能优化。

    转载地址:http://gzewk.baihongyu.com/

    你可能感兴趣的文章
    OpenCV添加中文(五)
    查看>>
    opencv源码查看
    查看>>
    OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
    查看>>
    opencv特征提取1-Harris角点检测
    查看>>
    OpenCV环境搭建(一)
    查看>>
    OpenCV的视频读取
    查看>>
    openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
    查看>>
    opencv笔记(1):图像缩放
    查看>>
    opencv笔记(二十四)——得到轮廓之后找到凸包convex hull
    查看>>
    OpenCV计算点到直线的距离 数学法
    查看>>
    Opencv识别图中人脸
    查看>>
    OpenCV读写avi、mpeg文件
    查看>>
    opencv里用calcCovarMatrix计算协方差矩阵
    查看>>
    OpenCV错误:在setSize中断言失败(s&>;=0)-尝试将图像放置在网络摄像头提要上时
    查看>>
    opencv面向对象设计初探
    查看>>
    OpenCV(1)读写图像
    查看>>
    OpenCV:不规则形状区域中每种颜色的像素数?
    查看>>
    OpenCV:概念、历史、应用场景示例、核心模块、安装配置
    查看>>
    OpenDaylight融合OpenStack架构分析
    查看>>
    OpenERP ORM 对象方法列表
    查看>>