python scrapy 爬取妹子图的照片

  1. 主要描述在windows 上如何用scrapy抓取煎蛋网妹子图所有的图片下载。

  2. 软件准备:winpython,啥都不说了,ipython很好用。

    安装scrapy,进入winpython 执行scrapt\env.bat。这样就可以直接pip install scrapy;注意执行的log,好像还要安装一个service_identity,具体什么功能也不清楚。以后慢慢研究。

  3. 建立工程scrapy startproject myscrapy

    建立spider  scrapy genspider spider(需要进入myscrapy)

    使用ImagesPipeLine,在settings.py中添加如下文件


    ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline':1}#使用imagespipeline

    IMAGES_STORE = 'E:\download'#下载的路径

    还可以过滤图片大小什么的,暂时用不到。

    scrapy 提供imagespipe 提供图片下载功能,只要提供urls就行了。

定义item类

class xxxItem(scrapy.Item):

    image_urls = scrapy.Field()

    imges = scrapy.Field()



spider.py文件

class JiandanSpider(scrapy.Spider):

name = "jandan"

    allowed_domains = ["jandan.net"]

    start_urls = (

        'http://jandan.net/ooxx',

    )

def parse(self, response):

        t = response.xpath('//div[1]/div/div[2]/p/img')

        img_urls = t.xpath('@src').extract()

        newItem = BlueItem(image_urls = img_urls)

        yield newItem

        #extract 每个图片的src,直接丢给ImagesPipeline处理。

        sel_next_url = response.xpath('//div[2]/div/a')

        for item in sel_next_url:            

            classname = item.xpath('@class').extract()

            if len(classname) > 0:                

                if "previous-comment" in classname[0]:

                    urls = item.xpath('@href').extract()

                    for url in urls:

                        if "comments" in url:

                            print "-->",url,"<--"

                            yield scrapy.Request(url, callback = self.parse)

#提取下一个网页,重新发起请求。

坐等大巴大巴的妹子图片

你可能感兴趣的:(python,python,scrapy,爬虫,妹子图)