新闻爬虫及查询网站的实现(三):数据库交互操作

该博客介绍了新闻爬虫的实现,包括爬取至少100条新闻数据(标题、内容、时间)并存储在数据库中。内容涵盖数据库交互,如MySQL连接与操作,以及如何处理数据插入时的重复问题。还讨论了数据库设计,如建立索引来优化搜索和时间热度分析。
摘要由CSDN通过智能技术生成

上文:
新闻爬虫及查询网站的实现(〇):实验任务与内容介绍
新闻爬虫及查询网站的实现(一):爬虫基本框架的实现
新闻爬虫及查询网站的实现(二):具体网站具体解析

1. 实验内容

  1. 完成最少一个目标网站的分析和爬虫设计;
  2. 爬取不少于100条数据(每条数据包括最少3个字段,标题、内容和时间),并存储在数据库中;
  3. 完成对数据库中爬取数据内容或标题的搜索功能,搜索结果以表格形式展示在前端页面中;
  4. 完成对搜索内容的时间热度分析。

2. 实验任务

  1. 爬取数据。
  2. 数据库交互
    1. 创建并连接数据库;
    2. 实现主要操作的函数的封装。
  3. 新闻检索。
  4. 前端设计。

3. 实验步骤

1. 爬取数据

2. 数据库交互

  1. 写在前面
    我们刚刚爬虫后已经得到了结构化的json数据,现在我们要把它们保存起来存入数据库中。
    我一开始准备用MySQL,但是我的电脑上的MySQL莫名不稳定,在这个实验中,我调试的时候,就遇到过连接明明成功还回了连接池,但是连接计数并没有减少,导致了一种假的连接满状况,无法连接数据库;还有的时候可能是因为循环+异步的原因,query执行了多次;并且,比起出这种问题更可怕的事情是,有的时候它就又自己好了,代码一字未动却能正常运行,让我非常不能理解到底发生了什么……然后我准备用MongoDB,但是调试过程中可能是因为把连接关了,让整个MongoDB的端口都关闭无法连接上了,MongoShell都不能用了。
    最后我还是决定使用MySQL,虽然有时插入会出现重复,但至少本身查询都是ok的,并且有UNIQUE限制,防止重复插入。
  2. 数据库基本设计
    我只建立了一张表;其实可能可以把keywords拆分开来单独建表会比较好……我插入的列有
    fetches:{title, content, publish_date, url, source_name, source_encoding, crawltime, keywords, author, source, desc}
    
    此外,插入数据库时,还会生成id和时间戳。
    由于要按照时间热度排序,所以我们可以在publish_date上建立索引。同时搜索会经常用到title、content、keywords和desc,所以数据库较大时,也可以在这几列上建立索引。
    直接用sql语句创建表即可。
    CREATE DATABASE `crawl`;
    USE `crawl`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值