采集文章(刘心怡学号: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的交互。我在这次实验中学到了很多,受益匪浅。