本文主要是介绍手把手教你爬美女图入门篇-美空首页美女图下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
你将学会
- 用Scrapy爬取一个静态页面中的图片链接
你需要了解
- Scrapy的简单配置
- Scrapy的基础框架
- 标签Selector的基础用法
屌丝程序员都喜欢美女图,先上一张美图让大家爽一把,好好看后面的教程,一步一步教你怎么自动爬高质量美女图~
能不能学到技术且不说,介绍一下下面这个网站吧,美空网,质量不错~
工欲善其事必先利其器
言归正传,要饱饱眼福,先弄个爬虫在后台把图片都爬下来,等没人的时候找个安静的地方慢慢欣赏,那才惬意。这里给大家介绍一个简单实用的爬虫框架Scrapy,基于python,用起来很方便,即使没有什么编程基础的人,也能迅速掌握。
废话少说,要使用Scrapy,请先移步Scrapy安装教程。
懒人方案
了解原理之前,可以先跑一把,看看效果,直接上github链接,XiaomaiTutorial,下载代码,cd到指定目录,运行,列出结果~
dybs-MacBook-Pro:workspace yanbiao$ cd XiaomaiTutorial/ dybs-MacBook-Pro:XiaomaiTutorial yanbiao$ scrapy crawl example01
哗哗哗打出一堆字符
2014-08-04 23:17:28+0800 [scrapy] INFO: Scrapy 0.24.2 started (bot: tutorial) 2014-08-04 23:17:28+0800 [scrapy] INFO: Optional features available: ssl, http11, django 2014-08-04 23:17:28+0800 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'tutorial.spiders', 'SPIDER_MODULES': ['tutorial.spiders'], 'BOT_NAME': 'tutorial'} 2014-08-04 23:17:28+0800 [scrapy] INFO: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState 2014-08-04 23:17:28+0800 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 2014-08-04 23:17:28+0800 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 2014-08-04 23:17:28+0800 [scrapy] INFO: Enabled item pipelines: 2014-08-04 23:17:28+0800 [example01] INFO: Spider opened 2014-08-04 23:17:28+0800 [example01] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2014-08-04 23:17:28+0800 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023 2014-08-04 23:17:28+0800 [scrapy] DEBUG: Web service listening on 127.0.0.1:6080 2014-08-04 23:17:28+0800 [example01] DEBUG: Crawled (200) <GET http://www.moko.cc/> (referer: None)http://img2.moko.cc/users/20/6019/1805971/post/b1/img2_cover_9395163.jpghttp://img2.moko.cc/users/16/4817/1445276/post/ed/img2_cover_9341164.jpghttp://img2.moko.cc/users/18/5415/1624793/post/ed/img2_cover_9342575.jpghttp://img2.moko.cc/users/14/4235/1270736/post/7e/img2_cover_9342712.jpghttp://img2.moko.cc/users/4/1337/401363/post/14/img2_cover_9346666.jpghttp://img2.moko.cc/users/18/5443/1632936/post/cf/img2_cover_9347694.jpghttp://img2.moko.cc/users/15/4631/1389322/post/0d/img2_cover_9351098.jpghttp://img2.moko.cc/users/3/1123/337162/post/6d/img2_cover_9325747.jpghttp://img2.moko.cc/users/0/15/4629/post/78/img2_cover_9351587.jpghttp://img2.moko.cc/users/0/17/5175/post/6b/img2_cover_9329001.jpghttp://img2.moko.cc/users/0/16/5037/post/67/img2_cover_9335332.jpghttp://img2.moko.cc/users/0/9/2952/post/b2/img2_cover_9343414.jpghttp://img2.moko.cc/users/0/55/16695/post/a1/img2_mokoshow_9337921.jpghttp://img2.moko.cc/users/15/4787/1436175/post/2d/img2_mokoshow_9289413.jpghttp://img2.moko.cc/users/21/6365/1909654/post/a3/img2_mokoshow_9210602.jpghttp://img2.moko.cc/users/15/4646/1394082/post/3e/img2_mokoshow_9196025.jpghttp://img2.moko.cc/users/21/6352/1905871/post/3b/img2_mokoshow_8797685.jpghttp://img2.moko.cc/users/15/4787/1436175/post/e0/img2_mokoshow_9351262.jpghttp://img2.moko.cc/users/21/6324/1897300/project/77/img2_mokoshow_9273297.jpghttp://img2.moko.cc/users/20/6153/1846107/project/de/img2_mokoshow_9174923.jpghttp://img2.moko.cc/users/21/6498/1949497/project/71/img2_mokoshow_9115531.jpghttp://img2.moko.cc/users/0/12/3604/project/88/img2_mokoshow_8170347.jpghttp://img2.moko.cc/users/12/3882/1164727/project/6b/img2_mokoshow_8797891.jpghttp://img2.moko.cc/users/20/6052/1815737/project/3d/img2_mokoshow_8299559.jpghttp://img1.moko.cc/users/6/1901/570354/logo/img1_des_4751873.jpghttp://img2.moko.cc/users/3/955/286676/logo/img2_des_9257459.jpghttp://img2.moko.cc/users/0/148/44474/logo/img2_des_8430030.jpghttp://img2.moko.cc/users/0/67/20175/logo/img2_des_9035655.jpghttp://img2.moko.cc/users/0/18/5503/logo/img2_des_9114555.jpghttp://img2.moko.cc/users/0/15/4629/logo/img2_des_9262920.jpghttp://img2.moko.cc/users/0/19/5932/logo/img2_des_9039246.jpghttp://img2.moko.cc/users/0/42/12745/logo/img2_des_8992854.jpghttp://img1.moko.cc/users/3/1181/354499/logo/img1_des_4966539.jpghttp://img2.moko.cc/users/0/36/10924/logo/img2_des_8566131.jpghttp://img1.moko.cc/users/3/1023/306970/logo/img1_des_1000989.jpghttp://img1.moko.cc/users/0/4/1476/logo/img1_des_7541033.jpghttp://img1.moko.cc/users/0/1/363/logo/img1_des_6695256.jpghttp://img1.moko.cc/users/2/626/187854/logo/img1_des_6211549.jpghttp://img2.moko.cc/users/12/3863/1158905/logo/img2_des_9332634.jpghttp://img2.moko.cc/users/21/6324/1897300/logo/img2_des_9202964.jpghttp://img2.moko.cc/users/15/4579/1373912/logo/img2_des_8423039.jpghttp://img2.moko.cc/users/20/6052/1815737/logo/img2_des_8005855.jpghttp://img2.moko.cc/users/19/5997/1799351/logo/img2_des_7965559.jpghttp://img1.moko.cc/users/12/3882/1164727/logo/img1_des_5806364.jpghttp://img1.moko.cc/users/18/5409/1622983/logo/img1_des_7618588.jpg2014-08-04 23:17:28+0800 [example01] INFO: Closing spider (finished) 2014-08-04 23:17:28+0800 [example01] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 210, 'downloader/request_count': 1, 'downloader/request_method_count/GET': 1, 'downloader/response_bytes': 8974, 'downloader/response_count': 1, 'downloader/response_status_count/200': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2014, 8, 4, 15, 17, 28, 550220), 'log_count/DEBUG': 3, 'log_count/INFO': 7, 'response_received_count': 1, 'scheduler/dequeued': 1, 'scheduler/dequeued/memory': 1, 'scheduler/enqueued': 1, 'scheduler/enqueued/memory': 1, 'start_time': datetime.datetime(2014, 8, 4, 15, 17, 28, 438989)}
看到橙色链接没有,没错!那就是美女图链接。会有人问,坑爹啊,怎么不是下载下来而是打出链接?
别着急嘛,慢慢来,其实打出链接比下载图片更有用,你的硬盘哪放得下那么多图片不是?后面慢慢教你如何惬意滴欣赏。
自己动手 丰衣足食
新建一个scrapy项目
首先你需要通过scrapy命令新建一个项目,scrapy会自动为你生成一些代码和文件,命令如下:
scrapy startproject tutorial
你的目录下会出现一个名为tutorial的目录,目录结构如下:
tutorial/ -scrapy.cfg -tutorial/ -__init__.py -items.py -pipelines.py -settings.py -spiders/ -__init__.py ...
scrapy.cfg:项目配置文件 tutorial/:项目的python模块,后面你需要引用这里面的东西 tutorial/items.py:定义你要爬取到内容,后面的文章会介绍 tutorial/pipelines.py:对你爬取内容进行处理的地方,后面的文章会介绍 tutorial/settings.py:项目设置文件,后面的文章会介绍 tutorial/spiders/:放置爬虫代码的目录
创建一个爬虫并使用Selector解析html标签
cd tutorial
scrapy genspider example01 example01 example01
此时,spider目录下会多出一个example01.py的文件,爬虫要做的事情就是在这儿定义的了,文件的初始状况如下:
# -*- coding: utf-8 -*- import scrapyclass Example01Spider(scrapy.Spider): name = "example01" allowed_domains = ["example01"] start_urls = ( 'http://www.example01/', )def parse(self, response): pass
这里简单介绍一下,
- name是spider的名称,前面的scrapy crawl example01后面的example01就是name
- allowed_domains是允许访问的域,暂时可以不管
- start_urls是爬虫开始爬的页面,即起点,本文我们只爬首页,所以写一个url即可,此处是http://www.moko.cc/
- parse函数是爬虫的主函数,response是对网页进行http请求后获得的数据,其实就是一个字符串。而爬虫的本质就是分析这些字符串,找到我们需要的内容,笼统的说就是这么简单,而我们今天要获取的是图片的url。
OK,开始真正有一点技术含量的工作了,先看一下首页的html代码,如果是chrome浏览器,在页面右键,点击查看源文件,你会看到乱七八糟一大堆html代码,不要着急,我们简单分析就能知道图片在哪(当然,你也可以用一些页面调试工具来看,目前还没有那么复杂啦)。下面贴一小段关键代码:
擦,女神佟丽娅,还不赶紧爬。。。
可以看出,图片都是在div class = cover下的img标签里面,url是src2的属性值,这时就要发挥Selector的强大功力了,我们将example01.py改成如下模样
# -*- coding: utf-8 -*- import scrapyclass Example01Spider(scrapy.Spider): name = "example01" allowed_domains = ["moko.cc"] start_urls = ( 'http://www.moko.cc/', )def parse(self, response): for divs in response.xpath('//div[@class="cover"]'): img_url = divs.xpath('.//img/@src2').extract()[0] print img_url
- 解释一下两句代码
reseponse.xpath(‘//div[@class="cover"]‘)的含义就是把所有class是cover的div标签找出来,形成一个列表,然后我们用for循环遍历这个列表
div.xpath(‘.//img/src2′).extract()[0]的含义就是把每个符合要求的div下,img标签内的src2属性给取出来,取出来的同样事列表,但是我们知道其实只有一个值,所以取下标[0]
至此,img_url就打印出来了。
好吧,这一篇就到这儿了,xpath到用法囫囵吞枣先说了个大概,内容也不少,需要消化一下。
一定有人大骂,主页就这么几张图,啥也没有啊,你坑爹呢!
别急别急,刚起步呢,其实你已经离成功不远了,下一片,咱们好好看看Selector的各种用法,用好这一利器,后面的路都好走~
感谢阅读,啥也不说,上点儿福利
本文源码下载
原创文章,写作不易,转载请注明:转自http://tech.my-coffees.com/?p=7
这篇关于手把手教你爬美女图入门篇-美空首页美女图下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!