-
解析出实体(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()
- 可以通过标题和图片序列构建图片名。