Python 爬取美女圖片,分目錄多級存儲
阿新 • • 發佈:2017-12-23
port Language resp pac rst apt itl album domain
最近有個需求:下載https://mm.meiji2.com/網站的圖片。
所以簡單研究了一下爬蟲。
在此整理一下結果,一為自己記錄,二給後人一些方向。
爬取結果如圖:
整體研究周期 2-3 天,看完之後,在加上看的時候或多或少也會自己搜到一些其他知識。
順著看下來,應該會對爬蟲技術有一個初步的認識。
大致的步驟:
分析頁面,編寫爬蟲規則
下載圖片,如果有分頁,則分頁
多頁爬取,並且分目錄保存到本地,多級存儲。
應對反爬蟲
以上就是學習的時候,看到的一些資料。
然後貼出一篇我自己寫的,爬取的時候分了三級目錄,並且,最後一級還有 下一頁。
import scrapy from znns.items import ZnnsItem class NvshenSpider(scrapy.Spider): name = ‘znns‘ allowed_domains = [‘‘] start_urls = [‘https://mm.meiji2.com/‘] headers = { ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8‘, ‘Accept-Language‘: ‘zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3‘, } # 排行榜循環 def parse(self, response): exp = u‘//div[@class="pagesYY"]//a[text()="下一頁"]/@href‘ # 下一頁的地址 _next = response.xpath(exp).extract_first() yield scrapy.Request(response.urljoin(_next), callback=self.parse, dont_filter=True) for p in response.xpath(‘//li[@class="rankli"]//div[@class="rankli_imgdiv"]//a/@href‘).extract(): # 某一個妹子簡介詳情頁 item_page = "https://mm.meiji2.com/" + p + "album/" # 拼接 全部相冊頁面 yield scrapy.Request(item_page, callback=self.parse_item, dont_filter=True) # 單個介紹詳情頁 def parse_item(self, response): item = ZnnsItem() # 某個人的名字,也就是一級文件夾 item[‘name‘] = response.xpath(‘//div[@id="post"]//div[@id="map"]//div[@class="browse"]/a[2]/@title‘).extract()[ 0].strip() exp = ‘//li[@class="igalleryli"]//div[@class="igalleryli_div"]//a/@href‘ for p in response.xpath(exp).extract(): # 遍歷妹子全部相冊 item_page = "https://mm.meiji2.com/" + p # 拼接圖片的詳情頁 yield scrapy.Request(item_page, meta={‘item‘: item}, callback=self.parse_item_details, dont_filter=True) # 圖片主頁,開始抓取 def parse_item_details(self, response): item = response.meta[‘item‘] item[‘image_urls‘] = response.xpath(‘//ul[@id="hgallery"]//img/@src‘).extract() # 圖片鏈接 item[‘albumname‘] = response.xpath(‘//h1[@id="htilte"]/text()‘).extract()[0].strip() # 二級文件夾 yield item new_url = response.xpath(‘//div[@id="pages"]//a[text()="下一頁"]/@href‘).extract_first() # 翻頁 new_url = "https://mm.meiji2.com/" + new_url
Python 爬取美女圖片,分目錄多級存儲