文章目录
Scrapy爬取图片并重命名总结
项目分析:
1、现在很多网页都是动态加载资源,数据都不在静态html模板上,都是通过重定向从json文件中加载而来,因此只要抓取json数据包即可,这是一种捷径,比较容易,并不利于爬虫的学习,所以以后还是在数据实在不好得到的情况下使用
2、开发环境及工具介绍
python 3.6
scrapy 1.7.3
XPath选择器
工具:pycharm
开始项目:
https://www.douyu.com/api/v1/getVerticalRoom?limit=20&offset=0 数据地址
1、合适的位置创建project
进入cmd命令窗口:
- scrapy startproject Douyu 创建爬虫项目
- scrapy genspider douyu “douyu.com” 创建爬虫文件
- 创建一个保存图片的文件夹,记住路径,需要写在配置文件里
- 项目结构
# pycache是py的缓存文件不用理会
│ scrapy.cfg
│
├─Douyu
│ │ items.py
│ │ middlewares.py
│ │ pipelines.py
│ │ settings.py
│ │ init.py
│ │
│ ├─spiders
│ │ │ douyu.py
│ │ │ init.py
│ │ │
│ │ └─pycache
│ │ douyu.cpython-36.pyc
│ │ init.cpython-36.pyc
│ │
│ └─pycache
│ items.cpython-36.pyc
│ pipelines.cpython-36.pyc
│ settings.cpython-36.pyc
│ init.cpython-36.pyc
│
└─images
2、分析json数据
需要爬取的字段 nickname vertical_src ,并且重命名图片名称,使用nickname命名
-
定义item.py
import scrapy class DouyuItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() # 主播昵称 nickname = scrapy.Field() # 图片链接 imagelink = scrapy.Field()
-
编写爬虫文件 douyu.py
# -*- coding: utf-8 -*- import scrapy import json from Douyu.items