博客
关于我
使用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/

    你可能感兴趣的文章
    PHP写计划任务
    查看>>
    PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
    查看>>
    PHP函数
    查看>>
    React input defaultValue不会更新状态怎么办?
    查看>>
    PHP函数__autoload失效原因(与smarty有关)
    查看>>
    PHP函数判断移动端和PC端
    查看>>
    Springboot基础入门
    查看>>
    php函数性能优化中应注意哪些问题?
    查看>>
    PHP函数操作数字和汉字互转(100以内)
    查看>>
    PHP函数方法
    查看>>
    PHP创建目录mkdir无写入权限的问题解决方案
    查看>>
    PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
    查看>>
    php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
    查看>>
    React Collapse Pane 项目教程
    查看>>
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>
    PHP判断指定目录下是否存在文件
    查看>>
    php判断数组是否为空
    查看>>
    PHP判断数组是否有重复值、获取重复值
    查看>>
    springboot基于Web的社区留守儿童管理系统源码毕设+论文
    查看>>