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

    你可能感兴趣的文章
    phprpc简单使用
    查看>>
    phpspider中当爬虫获取数据时如何去掉广告
    查看>>
    phpstorm 2016.3.3 激活
    查看>>
    phpstorm中Xdebug的使用
    查看>>
    phpstorm中使用svn版本控制器
    查看>>
    PHPStorm使用git
    查看>>
    PHPstorm最常用的快捷键,提高开发效率
    查看>>
    Redis五种数据结构
    查看>>
    phpstorm配置php脚本执行
    查看>>
    PhpStorm配置远程xdebug
    查看>>
    phpstudy+iis搭建php项目
    查看>>
    phpStudy安装教程
    查看>>
    phpstudy搭建网站,通过快解析端口映射外网访问
    查看>>
    phpstudy站点域名管理
    查看>>
    phpunit
    查看>>
    PHPUnit单元测试对桩件(stub)和仿件对象(Mock)的理解
    查看>>
    phpweb成品网站最新版(注入、上传、写shell)
    查看>>
    phpWhois 项目推荐
    查看>>
    Redis事务详解,吃透数据库没你想的那么难
    查看>>
    phpwind部署问题
    查看>>