很多朋友对于图片网站带采集源码分享和图片素材收集网站不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
pythonScrapy批量采集妹子图网的图片
这部分相当有用,咱们不多说,目前是2016.6.22日亲测可用.环境方面是linux_ubuntu_15.04python_scrapy的环境搭建有问题请看之前的scrapy笔记
代码在:githubhttps://github.com/luyishisi/WebCrawlers/tree/master/scrapy_code/meizitu
先上最终截图,有动力好好学习了没?
0.创建项目
Python
1scrapystartprojectmeizitu
1.修改item.py
Python
12345678910importscrapyclassMeizituItem(scrapy.Item):name=scrapy.Field()url=scrapy.Field()name=scrapy.Field()tags=scrapy.Field()image_urls=scrapy.Field()images=scrapy.Field()
2.修改pipelines.py
Python
123456789101112131415161718192021222324252627282930313233343536373839404142图片下载部分(自动增量)importrequestsfrommeizituimportsettingsimportos如果‘图片地址’在项目中images=[]建立目录名字和项目名称一致ifnotos.path.exists(dir_path):os.makedirs(dir_path)如果这个文件存在则跳过ifos.path.exists(file_path):continue获取的流如果有不存在的,则使用break结束,如果没有一次结束则进行写入ifnotblock:breakhandle.write(block)item[‘images’]=images-*-coding:utf-8-*-BOT_NAME=’meizitu’SPIDER_MODULES=[‘meizitu.spiders’]NEWSPIDER_MODULE=’meizitu.spiders’图片储存IMAGES_STORE=’.’
4.建立spiders/meizi.py
注意这里名字不可以和项目文件夹的名字一样就是说不可以是meizitu。否则会报错
原scrapyImportError:Nomodulenameditems
ImportError:Nomodulenameditems
https://groups.google.com/forum/-*-coding:utf-8-*-importscrapyfromscrapy.selectorimportSelectorsel是页面源代码,载入scrapy.selectorsel=Selector(response)请求=Request(连接,parese_item)request=scrapy.Request(link,callback=self.parse_item)yieldrequest获取页码集合pages=sel.xpath(‘//*[@id=”wp_page_numbers”]/ul/li/a/@href’).extract()print(‘pages:%s’%pages)如果页码集合>2page_link=pages[-2]图片连接=page_link(a替换成空)request=scrapy.Request(‘http://www.meizitu.com/a/%s’%page_link,callback=self.parse)yieldrequestl=用ItemLoader载入MeizituItem()l=ItemLoader(item=MeizituItem(),response=response)标签l.add_xpath(‘tags’,”//div[@id=’maincontent’]/div[@class=’postmetaclearfix’]/div[@class=’metaRight’]/p”)urll.add_value(‘url’,response.url)returnl.load_item()
5.运行
Python
1
scrapycrawlmeizi
6.检查效果
在执行命令的这个目录下就可以看到啦一个meizi的文件夹
文章分享结束,图片网站带采集源码分享和图片素材收集网站的答案你都知道了吗?欢迎再次光临本站哦!
