文章目录第三步:运行爬虫项目
引言
大家好!这一期的文章来跟大家讲讲如何使用框架实现对网页上图片的爬取并大量下载 。我们以网易旗下的阴阳师手游为例 , 给大家演示一下游戏壁纸的抓取过程 。
第一步:分析网页 html 结构
首先 , 我们打开阴阳师手游的官网 , 进入到游戏壁纸下载页面:
将网页下拉 , 我们还能看到更多的排成三列的壁纸图片:
按F12打开控制台 , Shift + Ctrl + C 组合键开启查看网页元素的模式 , 然后将鼠标移动到某一张壁纸上面 , 选择一个分辨率按钮点击 , 我们可以看到相对应的图片标签:
知道了图片url的信息 , 并不代表这些元素一定包含在网页的静态页面里 。为了确保我们的爬虫能够从网页中拿到这个标签 , 我们来右键点击页面 , 查看网页源代码:
进入网页源码后 , 将页面往下拉 , 我们可以看到一个个 img 标签以相同的形式分装在不断重复的 div 里面:
每一个壁纸的图片地址 , 都封装在一个 item 下的 cover 下的 mask 中 , 我们只需要用 CSS 选择器或者 XPath 选择器匹配这些标签就能够顺利获取图片地址 。好 , 很有精神!接下来让我们开启一个爬虫项目来爬取这些壁纸吧 。
第二步:使用框架构建爬虫程序 配置 .py
工欲善其事 , 必先利其器 。首先我们在 .py 文件中配置好IMAGE相关的属性:
定义了我们之后获取图片URL的字段 , 我们将这个字段名设置为。
给出了图片保存的目录位置 , 我们把爬到的图片放在 [项目位置]//yys 文件夹下 。
【Scrapy 爬取网站图片与壁纸 -- 爬取网易阴阳师壁纸篇】 给出了不重复爬取图片的天数 , 定为90天 。
items.py 文件下创建图片 item 类
打开 items.py 文件 , 新建一个类 , 命名为。这里一定需要一个字段 , 之后会通过对该字段中的图片地址请求下载 。
class WallpaperYYSItem(scrapy.Item):image_url = scrapy.Field()
创建文件
在你的项目目录下 , 通过[] [url] 开启一个爬虫文件:
scrapy genspider wallpaperYYS https://yys.163.com/media/picture.html
文章插图
打开 /.py , 我们将类下的相关属性改为:
parse 函数书写
接下来就是我们的重头戏了 , 定义 parse 函数 。这里的几个关键步骤为:
def parse(self, response):_getSize = lambda x: int(x[0]) + int(x[1])image_nodes = response.css('.item .cover .mask')for image in image_nodes:wallpaperF = image.css('a:nth-child(1)')wallpaperL = image.css('a:nth-last-child(1)')sizeF = _getSize(wallpaperF.xpath('text()').extract_first().split('x'))sizeL = _getSize(wallpaperL.xpath('text()').extract_first().split('x'))if sizeF > sizeL:image_url = wallpaperF.xpath('@href').extract_first()else:image_url = wallpaperL.xpath('@href').extract_first()wallpaper_item = WallpaperYYSItem()wallpaper_item['image_url'] = [image_url]yield wallpaper_item
创建自定义的
在 .py 文件中继承创建一个新的。这里其实什么也不需要改 , 使用原来有的功能就行 。
class YYSImagesPipeline(ImagesPipeline):def item_completed(self, results, item, info):return item
- 创建网站免费注册,如何创建免费网站
- 切换网站域名,域名切换是什么??
- 【Python从入门到进阶】25、urllib获取快餐网站店铺数据
- 一个内含海量科普知识的网站 世界之最科普视频网站网址
- 转发有福利哦 Python实战 | 爬取北京海淀区一居室租房信息
- 凤凰金融现状,凤凰金融这个互金网站怎么样?
- 让世界震悚的19个未解之谜,千年无解! 未解之谜历史之最网站
- 网络营销推广软件分享在建网站的优化技巧!
- chatgpt赋能python:Python搜索引擎优化:如何搜索网站内容
- 中国电竞价值排行榜网站,中国职业电竞战队排名