数据采集与融合技术-第三次大作业

作业①

  • 1.1作业内容

    • 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如中国气象网(http://www.weather.com.cn)。分别使用单线程和多线程的方式爬取。(限定爬取图片数量为学号后3位)。
    • 输出信息:将下载的Url信息在控制台输出,并将下载的图片存储在images子文件夹中,并给出截图。
  • 1.2代码及实验步骤

    • 1.2.1码云链接:
      作业3_1单线程
      作业3_1多线程

    • 1.2.2实验步骤:
      1、确定主页面,观察并爬取主页面中子网页链接
      每个子网页中的图片数量不等

      观察带有子网页链接的标签

      爬取主页面中的24个子网页链接



      2、爬取子页面里的图片链接




      3、单线程下载图片



      4、多线程下载图片



    • 1.2.3运行结果:
      单线程运行结果





      多线程运行结果

  • 1.3心得体会

    • 单线程按顺序下载图片,非常简单直观,多线程不一定按顺序执行,但是下载速度快
    • 多线程需要考虑到不同线程内数据的控制,防止出现同一个数据被多个线程引用


作业②

  • 2.1作业内容

    • 要求:使用scrapy框架复现作业①。
    • 输出信息:将下载的Url信息在控制台输出,并将下载的图片存储在images子文件夹中,并给出截图。
  • 2.2代码及实验步骤

    • 2.2.1码云链接: 作业3_2

    • 2.2.2实验步骤
      1、确定主网页的url,用parse爬取网页中的子网页链接并request




      2、对子网页的response进行处理,爬取其中的图片链接传递给pipelines




      3、pipelines对爬取到的图片进行下载



    • 2.2.3运行结果:

  • 2.3心得体会

    • 可以重写parse方法对网页进行遍历爬取
    • 学会了xpath的使用,感觉熟练后的xpath会比CSS更便利


作业③

  • 3.1作业内容

    • 要求:爬取豆瓣电影数据使用scrapy和xpath,并将内容存储到数据库,同时将图片存储在imgs路径下。
      所有院校信息,并存储在数据库中,同时将浏览器F12调试分析的过程录制Gif加入至博客中。
    • 输出信息:
      序号 电影名称 导演 演员 简介 电影评分 电影封面
      1 肖申克的救赎 弗兰克·德拉邦特 蒂姆·罗宾斯 希望让人自由 9.7 ./imgs/xsk.jpg
      2....
  • 3.2代码及实验步骤

    • 3.2.1码云链接: 作业3_3

    • 3.2.2实验步骤
      1、确定item属性




      2、给出start_url,并在parse中实现翻页

      .




      3、爬取属性,将item传递给pipelins




      4、下载图片并将电影属性存入数据库



    • 3.2.4运行结果:

      .

  • 3.3心得体会

    • 对于scrapy的应用更加熟练
    • 爬取时经常可能会碰到信息缺失的问题,学会了对这些问题进行分析解决
      不对actor进行处理时,只爬取到第63部电影时程序就结束了


查询发现电影缺失了主演信息,导致数组越界,于是修改actor的值,问题解决

posted @ 2021-11-07 11:30  暴走小颗颗  阅读(31)  评论(0编辑  收藏  举报