Scrapy-多层爬取天堂图片网

1.根据图片分类对爬取的图片进行分类

开发者选项 --> 找到分类地址

爬取每个分类的地址通过回调函数传入下一层
name = 'sky'
start_urls = ['http://ivsky.com/']
def parse(self, response):
selector = Selector(response)
# print(response.text)
types = selector.xpath("//div[@class='kw']/a")
for type in types:
typeUrl = type.xpath("@href").extract()[0] #分类地址
typeName = type.xpath("text()").extract()[0] #分类名称
# print(typeUrl+" "+typeName)
yield Request(self.start_urls[0]+typeUrl,callback=self.parseTotalPage,meta={'typeName':typeName})
2.点击进入一个类型 --> 开发者选项 --> 找到分页代码段

爬取每一个分页的地址也是通过回调函数传入下一层进行处理
def parseTotalPage(self,response):
typeName = response.meta["typeName"]
# print(typeName)
selector = Selector(response)
# print(response.text)
pageList = selector.xpath("//div[@class='pagelist']//a//@href").extract() #每一页的地址
for page in pageList:
yield Request(self.start_urls[0]+page,callback=self.parseGetImg,meta={'typeName':typeName})
3.获取一类图地址 --> 开发者选项 --> 找到相同类图的地址

爬取这类图的地址通过回调函数传入下一层进行处理
def parseGetImg(self,response):
typeName = response.meta["typeName"]
selector = Selector(response)
imgs = selector.xpath("//div[@class='il_img']//a")
for img in imgs:
imgUrl = img.xpath("@href").extract()[0] #一类图的地址
# print(imgUrl+" "+imgName)
yield Request(self.start_urls[0]+imgUrl,callback=self.parseGetMoreImg)
4.查看每张图片的html代码 --> 找到图片的地址

爬取每张图的地址
def parseGetMoreImg(self,response):
# / html / body / div[3] / div[4] / ul / li[3] / div / a / img
selector = Selector(response)
# print(response.text)
items = IvskyItem()
items["imgName"] = response.meta["imgName"]
items["imgUrl"] = selector.xpath("//div[@class='il_img']//a//img//@src").extract()
# print(items)
yield items
最后将图片传入pipelines.py 进行下载处理,要先在setting.py 设置,否则无法进入pipelines.py
ITEM_PIPELINES = {
'ivsky.pipelines.IvskyPipeline': 300,
}
代码地址:https://github.com/WitW/ivsky
Scrapy-多层爬取天堂图片网的更多相关文章
- Python的scrapy之爬取顶点小说网的所有小说
闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...
- 使用scrapy爬虫,爬取17k小说网的案例-方法一
无意间看到17小说网里面有一些小说小故事,于是决定用爬虫爬取下来自己看着玩,下图这个页面就是要爬取的来源. a 这个页面一共有125个标题,每个标题里面对应一个内容,如下图所示 下面直接看最核心spi ...
- scrapy实例:爬取中国天气网
1.创建项目 在你存放项目的目录下,按shift+鼠标右键打开命令行,输入命令创建项目: PS F:\ScrapyProject> scrapy startproject weather # w ...
- scrapy框架爬取妹子图片
首先,建立一个项目#可在github账户下载完整代码:https://github.com/connordb/scrapy-jiandan2 scrapy startproject jiandan2 ...
- Python的scrapy之爬取链家网房价信息并保存到本地
因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 爬虫结构: 其中封装了一个数据库处理模 ...
- Python的scrapy之爬取妹子图片
闲来无事,做的一个小爬虫项目 爬虫主程序: import scrapy from ..items import MeiziItem class MztSpider(scrapy.Spider): na ...
- 使用scrapy爬虫,爬取起点小说网的案例
爬取的页面为https://book.qidian.com/info/1010734492#Catalog 爬取的小说为凡人修仙之仙界篇,这边小说很不错. 正文的章节如下图所示 其中下面的章节为加密部 ...
- 使用scrapy爬虫,爬取17k小说网的案例-方法二
楼主准备爬取此页面的小说,此页面一共有125章 我们点击进去第一章和第一百二十五章发现了一个规律 我们看到此链接的 http://www.17k.com/chapter/271047/6336386 ...
- Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb
创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...
随机推荐
- MySQL 取得小时分钟部分
MySQL 取得小时分钟部分 SELECT `CpParkID` , DATE_FORMAT( `UPDATE_TIME` , '%H:%i' )FROM `cp_park`WHERE HOUR( ` ...
- 转载-Linux Shell 数组建立及使用技巧
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...
- 一个ios的各种组件、代码分类,供参考
http://github.ibireme.com/github/list/ios/#
- 童攀TP5企业网站实战笔记
$this->assign('data',$data) ---恢复内容开始--- return view(); 载入视图 {include file='public/head'} 包含文件 ...
- MySQL相关命令与备份
不加任何参数直接备份 mysqldump -uroot zabbix >/opt/zabbix.bak.sql 恢复,这样恢复时需要自已创建表 mysql -uroot < zabbix. ...
- Date对象和正则对象
1.Date对象 创建 var date1 = new Date(); var date2 = new Date(12983798123);//填一个毫秒值,应该是距离1970年1月1日.....多少 ...
- docker命令行学习
docker命令行学习 docker run docker run --help:老实说这条最管用了 docker run -it:交互模式,允许控制台输出 docker run -d:detach, ...
- BZOJ 2938: [Poi2000]病毒 [AC自动机 拓扑排序]
2938: [Poi2000]病毒 题意:判断是否存在无限长的不含模式串的字符串.只有01. 建出套路DP的转移图,判断有环就行了 练习一下拓扑排序 #include <iostream> ...
- POJ 2311 Cutting Game [Multi-SG?]
传送门 题意:n*m的纸片,一次切成两份,谁先切出1*1谁胜 Multi-SG? 不太一样啊 本题的要求是后继游戏中任意游戏获胜就可以了.... 这时候,如果游戏者发现某一单一游戏他必败他就不会再玩了 ...
- BZOJ 2754: [SCOI2012]喵星球上的点名 [后缀数组+暴力]
2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1906 Solved: 839[Submit][St ...