采集文章(刘心怡学号:2019级大数据一班作业(一))

优采云 发布时间: 2022-04-08 05:05

  采集文章(刘心怡学号:2019级大数据一班作业(一))

  数据采集与融合技术实践第三次作业

  要求:指定一个网站,爬取这个网站中的所有图片,如中国气象网( )。分别使用单线程和多线程方法进行爬取。(爬取的图片数量限于学号后3位)

  输出信息:在控制台输出下载的Url信息,将下载的图片存放在images子文件中,并给出截图。

  ②实验步骤1.图片爬取

  如果查看网页的内容,可以看到网页上的所有图片都在img标签下。

  

  因此设计爬虫如下

  

  其中download是图片下载功能,下面会介绍

  2.图片下载

  要控制图片的总数,必须写一个全局变量来控制具体的个数,这里设置为count,小于134才可以进行下载操作。之后,和上个作业一样,打开写入路径,然后关闭

  

  3.翻页处理

  这里的翻页处理和上次的天气爬虫很像,所以我就按照最后一种方法,直接设置了一个url列表,这样整个程序在列表的逐项选择中爬取每个页面,并完成翻页功能这里有点懒。因为页数很少,我直接复制完整的。否则,我应该找到城市代码并将固定格式一一插入。

  

  4.单线程转多线程

  由于我使用循环翻页,大大降低了设置多线程的难度,只要将3中的执行部分改成如下,就可以实现多线程爬取。

  

  ③代码链接

  单线程代码链接:赋值3/1.1.py

  多线程代码链接:赋值3/1.2.py

  ④运行结果:

  1.单线程

  

  

  2.多线程

  

  

  文件夹中的结果:

  

  2)经验

  作业①中,系统回顾了基本的爬取翻页逻辑和图片下载逻辑,以及比较麻烦的线程处理。我从这个实验中受益匪浅。

  作业②1)实验内容及结果①实验内容

  要求:使用scrapy框架复现工作①。

  输出信息:同作业①

  ②实验步骤

  首先这个测试需要scrapy抓取网页图片,然后items.py可以设置如下

  

  之后设置imgspider使用xpath爬取图片中图片的url,并返回item,内部处理逻辑与作业①类似,不再赘述。

  

  再次设置管道处理item,完成图片写入

  

  最后修改设置,确保可以执行

  

  ③代码链接

  项目:作业 3/items.py

  imgspider:作业3/imgspider.py

  管道:job3/pipelines.py

  设置:job3/settings.py

  运行:job3/run.py

  ④运行结果

  

  

  

  2)经验

  在作业②中,系统学习了使用scrapy框架爬取数据和xpath爬取信息的基本方法。我在这次实验中学到了很多,受益匪浅。

  作业③1)实验内容及结果 ①实验内容

  需求:使用scrapy和xpath爬取豆瓣电影数据,将内容存入数据库,图片存入imgs路径。

  候选人 网站:

  输出信息:

  序号 电影名称 导演 演员简介 电影分级 电影封面

  1

  肖申克的救赎

  弗兰克·达拉邦特

  蒂姆·罗宾斯

  希望自由

  9.7

  ./imgs/xsk.jpg

  2....

  ②实验步骤

  要爬取内容,您可以设置 items.py 如下:

  

  观察网页内容

  

  可以发现每个元素所在的路径都收录规律,所以可以使用xpath如下:

  

  导演和主演是同一个字符串。所以可以用中间量bd先爬下来,再分串,选择对应的位置,实现导演和主演内容的爬取。

  然后,编写管道实现数据库插入和图片爬取:

  

  

  在navicat中创建数据库豆瓣,表doubanmovie,并插入表头

  

  ③代码链接

  项目:作业 3/3/items.py

  doubanproject:作业3/3/danbanproject.py

  管道:job3/3/pipelines.py

  设置:homework3/3/settings.py

  运行:作业 3/3/run.py

  ④运行结果

  

  

  2)经验

  在作业③中,进一步学习了如何使用scrapy框架爬取数据以及如何使用xpath爬取信息,以及与mysql的交互。我在这次实验中学到了很多,受益匪浅。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线