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

    你可能感兴趣的文章
    nslookup 的基本知识与命令详解
    查看>>
    NSOperation基本操作
    查看>>
    NSRange 范围
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NSURLSession下载和断点续传
    查看>>
    NSUserdefault读书笔记
    查看>>
    NS图绘制工具推荐
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntp server 用法小结
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    ntpdate同步配置文件调整详解
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP服务器
    查看>>
    NTP配置
    查看>>