win7,pycharm,scrapy
没有安装scrapy的小伙伴请自行摸索安装scrapy模块
进入命令(cmd界面),执行
$ scrapy startproject so_image
$ cd so_image
$ scrapy genspider images image.so.com
打开setting.py 修改
ROBOTSTXT_OBEY = False
开启图片下载通道
ITEM_PIPELINES = {
'scrapy.pipelines.images.ImagesPipeline': 1,
}
配置图片下载目录
IMAGES_STORE = 'download_images'
打开images.py 编写代码
# -*- coding: utf-8 -*-
import scrapy
from scrapy import Request
import json
class ImagesSpider(scrapy.Spider):
BASE_URL = 'http://image.so.com/zj?ch=art&sn=%s&listtype=new&temp=1'
start_index = 0
# 限制最大下载数量
MAX_DOWNLOAD_NUM = 1000
name = 'images'
start_urls = [BASE_URL % 0]
def parse(self, response):
infos = json.loads(response.body.decode('utf-8'))
# 提取所有图片下载url到一个列表,赋值给item的‘image_urls’字段
yield {'image_urls': [info['qhimg_url'] for info in infos['list']]}
# 如果count字段大于0,且下载数不足MAX_DOWNLOAD_NUM,继续获取下一页图片信息
self.start_index += infos['count']
if infos['count'] > 0 and self.start_index < self.MAX_DOWNLOAD_NUM:
yield Request(self.BASE_URL % self.start_index)
感兴趣可以拿去试试,其他网站的自己更换网址,注意解析规则。