首先,就是进入到唯一图库,点击上面的高清壁纸项目:

进入之后,下拉,发现是正常的下拉没有Ajax加载,拉到最后面点击末页,可以看出这个栏目里面总共有292页:

翻页看一下URL有什么变化,可以发现只有最后面代表这个页码的数字在发生变化:

打开F12,刷新,在原始请求代码里面有能进入到进入详情页的链接地址,可以抓取下来:

打开任意一张图片,进入到详情页码中,同样的F12,再刷新页面,里面有几个重要的信息我们要进行提取的,一个就是详情页的总页数,一个是标题,还有一个就是原图的下载地址,在原始请求的源代码中同样也能够找到相应的信息:

这里面还有分两种情况,一种就是总页数为一张的就不需要进行翻页,而对于总也是大于一张的图片就要再进行遍历,可以发现翻页时URL会发生变化:
http://www.mmonly.cc/gqbz/dmbz/xxxxx_i.html

经过分析以后就可以写代码了:

mmonly.py:

import scrapy
from scrapy.http import Request
from weiyiwang.items import WeiyiwangItemclass MmonlySpider(scrapy.Spider):name = 'mmonly'allowed_domains = ['mmonly.cc']start_urls = ['http://www.mmonly.cc/gqbz/list_41_{}.html'.format(i) for i in range(1,293)]def parse(self, response):links=response.css('.item.masonry_brick.masonry-brick')for link in links:detail_url = link.css('.ABox a::attr(href)').extract_first()pages=link.css('.items_likes::text').re_first('共(.*)张')if pages==1:url=detail_urlyield Request(url=url, callback=self.parse_detail)else:for i in range(1,int(pages)):url=detail_url.split('.html')[0]+'_{}.html'.format(i)yield Request(url=url,callback=self.parse_detail)def parse_detail(self,response):item=WeiyiwangItem()item['title']=response.css('.wrapper.clearfix.imgtitle h1::text').extract_first()item['img_url']=response.css('.big-pic a img::attr(src)').extract_first()yield item

最后的结果是存储至Mongodb:

pipeline.py:

import pymongo
class MongoPipeline(object):def __init__(self,mongo_uri,mongo_db):self.mongo_uri=mongo_uriself.mongo_db=mongo_db@classmethoddef from_crawler(cls,crawler):return cls(mongo_uri=crawler.settings.get('MONGO_URI'),mongo_db=crawler.settings.get('MONGO_DB'))def open_spider(self,spider):self.client=pymongo.MongoClient(self.mongo_uri)self.db=self.client[self.mongo_db]def close_spider(self,spider):self.client.close()def process_item(self, item, spider):self.db['weiyi'].insert(dict(item))return item

Python爬虫入门-scrapy爬取唯一图库高清壁纸相关推荐

  1. 【Python爬虫实战】爬取彼岸图库高清图片

    利用Python爬取彼岸图库高清图片 让你每天一张壁纸不重样,今天利用Python爬取 彼岸图库 http://pic.netbian.com/ 分析网页 通过首页可以看到要获取全站图片必须先抓取各个 ...

  2. python爬取唯一图库高清壁纸

    文章目录 写在前面 标题非常可口 1:用到的包 2:定义主函数 3:获取图库的地址 4:创建图库路径并保存第一张 5:正则提取壁纸的URL特征 6:保存壁纸 完整代码 爬取结果 写在后面 写在前面 今 ...

  3. Python爬虫入门-scrapy爬取拉勾网

    之前就爬过拉勾网,但是遇到一些错误一直没有办法解决,果断放弃了,今天又重新试着写写看,对于一个菜鸟来说,真的都是处处是坑,写篇文章记录一些,供接下去学习参考. 首先就是打开拉勾网,在搜索栏中输入Pyt ...

  4. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) —— 编写一个基本的 Spider 爬取微博用户信息

    上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(一) -- 新建爬虫项目 在上一篇我们新建了一个 sina_scrapy 的项目,这一节我们开始正式编写爬虫的代码. 选择目标 ...

  5. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据

    上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) -- 编写一个基本的 Spider 爬取微博用户信息 在上一篇博客中,我们已经新建了一个爬虫应用,并简单实现了爬取一位微 ...

  6. python 爬虫入门--文字爬取

    python 爬虫入门–文字爬取 对于爬虫,相信大家都不陌生,但是如何入门,大家还是停留在了解认知阶段吗?那可以试试下边的方法,一起来试一下. 首先我们试试爬取网页中的***文本信息*** 使用的是我 ...

  7. Python爬虫入门(爬取豆瓣电影信息小结)

    Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...

  8. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(四) —— 应对反爬技术(选取 User-Agent、添加 IP代理池以及Cookies池 )

    上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) -- 数据的持久化--使用MongoDB存储爬取的数据 最近项目有些忙,很多需求紧急上线,所以一直没能完善< 使用 ...

  9. Python爬虫入门 | 5 爬取小猪短租租房信息

    小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/   1.爬取租房标题 ...

最新文章

  1. [AWK]使用AWK进行分割字符串以及截取字符串
  2. JDBC的CRUD操作之PreparedStatement的删除操作
  3. Jquery实现 全选反选
  4. bzoj 1047: [HAOI2007]理想的正方形
  5. Web服务请求异步化介绍(概念篇)
  6. jupyter notebook python3路径_详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式...
  7. Thinking in Java Reading Note(2.一切都是对象)
  8. sqlserver字符串处理函数
  9. asp.net中使用下拉菜单的级联问题
  10. 空间曲率(曲速)引擎的数学原理及示意图
  11. spring-第十三篇之零配置支持
  12. 基于轮廓系数来选择n_clusters(Kmeans聚类分析)
  13. 程序员应该有的一些好习惯!
  14. 容器化一个简单的 Mern stack app
  15. 心理学c语言,心理学史练习题.doc
  16. 『2048』苏晓辉の转专业面试作品 · 纪念品
  17. uniapp 微信小程序如何解决发版后,旧版本缓存问题
  18. Python实现xbox手柄控制Tello无人机
  19. 每天学习8小时以下是不道德的
  20. Linux / Windows Subsystem for Linux (WSL) 安装 ADB (Android Debug Bridge,Android 调试桥)

热门文章

  1. Codeforces Round #748 (Div. 3) E. Gardener and Tree(拓扑排序)
  2. java factorial_[Java]函数求阶乘n!(factorial)(四种方法)
  3. 2019.4.30 WAGV CF Team replay
  4. 独木桥(bridge)
  5. strongswan libipsec
  6. L1-037 A除以B (10 分) 简单好懂
  7. spring - AOP(6)- 记录后台管理员操作日志
  8. 单基因gsea_单基因TCGA联合GEO干湿结合在胃癌中再发4分+
  9. Word中替换回车的办法
  10. PACT: PARAMETERIZED CLIPPING ACTIVATION FOR QUANTIZED NEURAL NETWORKS