-
解析出实体(Item),则交给实体管道进行进一步的处理;
-
解析出的是链接(URL),则把URL交给调度器等待抓取。
页面结构分析
- 首先查看目标页面,可以看到包含多个主题,选取感兴趣主题,本项目以“风景”为例(作为练习,也可以通过简单修改,来爬取所有模块内图片)。

- 在“风景”分类页面,可以看到每页包含多个专题,利用开发者工具,可以查看每个专题的URL,拷贝相应XPath,利用Xpath的规律性,构建循环,用于爬取每个专题内容。

查看不同专题的XPath
/html/body/div[3]/div/div[3]/div[1]/div[1]/div[2]/div/div/ul/li[1]/a
/html/body/div[3]/div/div[3]/div[1]/div[1]/div[2]/div/div/ul/li[2]/a
利用上述结果,可以看到li[index]中index为专题序列。因此可以构建Xpath列表如下:
item_selector = response.xpath(‘/html/body/div[3]/div/div[3]/div[1]/div[1]/div[2]/div/div/ul/li/a/@href’)
- 利用开发者工具,可以查看下一页的URL,拷贝相应XPath用于爬取下一页内容。

查看“下一页”的XPath
/html/body/div[3]/div/div[3]/div[1]/div[2]/div/a[5]
因此可以构建如下XPath:
next_selector = response.xpath(‘//a[@class=“next”]’)
- 点击进入专题,可以看到具体图片,通过查看图片XPath,用于获取图片地址。

构建图片XPath
response.xpath(‘/html/body/div[3]/div/div[2]/div/div[2]/div[1]/div/a/img/@src’).extract_first()
- 可以通过标题和图片序列构建图片名。


利用序号XPath构建图片在列表中的序号
index = response.xpath(‘/html/body/div[3]/div/div[2]/div/div[1]/div[1]/span/text()’).extract_first()
利用标题XPath构建图片标题
title = response.xpath(‘/html/body/div[3]/div/div[2]/div/div[1]/div[1]/h1/text()’).extract_first()
利用图片标题title和序号index构建图片名
name = title + ‘_’ + index + ‘.jpg’
-
<

本文详细描述了一种使用Scrapy框架爬取Win4000网站风景分类图片的方法,包括XPath选择器的使用、页面结构分析、模拟浏览器行为和设置下载延迟。作者还展示了如何构造ItemPipeline来下载图片并处理可能的错误。
最低0.47元/天 解锁文章
408

被折叠的 条评论
为什么被折叠?



