第一部分、利用ImagesPipeline爬取pixabay里面的美女图
进入pixabay网站在搜索框中输入关键字beauty,并且简化一下URL中的参数:
尝试进行翻页,可见URL中只有一个参数pagi发生变化:
随便进入一个页面打开F12,刷新,在原始的请求中有相关进入到详情页面的链接:
进入到详情页面,同样F12,刷新,在原始请求中也能找到我们最后想要的图片下载链接(注意:此处并非下载的是最最高清的图片,我尝试进行注册以获取最高清图片下载链接,但是注册失败,有兴趣的可以再试试):
网页结构比较简单,本来觉得可以很快就爬完,没想到这才刚开始我的404之旅:
pixabay.py:
import scrapy
from scrapy.http.request import Request
from pixabayweb.items import PixabaywebItem
class PixabaySpider(scrapy.Spider):
name = 'pixabay'
start_urls=['https://pixabay.com/zh/photos/?q=beauty&pagi={}'.format(i)for i in range(1,414)]
def parse(self, response):
base_url='https://pixabay.com'
links=response.xpath('//div[@class="flex_grid credits"]/div[@class="item"]')
for link in links:
url=base_url+link.xpath('./a/@href').extract_first()
yield Request(url=url,callback=self.parse_detail)
def parse_detail(self,response):
item=PixabaywebItem()
item['image_urls']=response.xpath('//*[@id="media_container"]/img/@src').extract_first()
yield item<