Python 에서 scrapy 는 그림 을 저장 하 는 예제 를 다운로드 합 니 다.
Images Pipeline 을 사용 하여 그림 데 이 터 를 다운로드 할 때,우 리 는 그 중의 세 개의 파이프 클래스 방법 을 다시 써 야 한다. ― get_media_request 그림 주소 요청 입 니 다.
― file path 그림 이름 되 돌리 기
― item_completed item 을 되 돌려 다음 실행 할 파이프 클래스 로 되 돌려 줍 니 다.
구체 적 인 코드 는 어떤 것 입 니까?우선 pipelines.py 파일 에서 Images Pipeline 류 를 가 져 온 다음 에 상술 한 세 가지 방법 을 다시 써 야 합 니 다.
from scrapy.pipelines.images import ImagesPipeline
import scrapy
import os
class ImgsPipLine(ImagesPipeline):
def get_media_requests(self, item, info):
yield scrapy.Request(url = item['img_src'],meta={'item':item})
#
def file_path(self, request, response=None, info=None):
item = request.meta['item']
print('########',item)
filePath = item['img_name']
return filePath
def item_completed(self, results, item, info):
return item
방법 이 정의 되면 settings.py 프로필 에 설정 해 야 합 니 다.하 나 는 그림 이 저 장 된 위 치 를 지정 하 는 IMAGES 입 니 다.STORE='D:\\\ImgPro'다음 에'ImgsPipLine'파 이 프 를 사용 합 니 다.
ITEM_PIPELINES = {
'imgPro.pipelines.ImgsPipLine': 300, #300 ,
}
설정 이 완료 되면 프로그램 을 실행 하면'D:\\ImgPro'에서 성공 적 으로 저 장 된 그림 을 볼 수 있 습 니 다.전체 코드 는 다음 과 같 습 니 다:
spider 파일 코드:
# -*- coding: utf-8 -*-
import scrapy
from imgPro.items import ImgproItem
class ImgSpider(scrapy.Spider):
name = 'img'
allowed_domains = ['www.521609.com']
start_urls = ['http://www.521609.com/daxuemeinv/']
def parse(self, response):
#
li_list = response.xpath('//div[@class="index_img list_center"]/ul/li')
for li in li_list:
item = ImgproItem()
item['img_src'] = 'http://www.521609.com/' + li.xpath('./a[1]/img/@src').extract_first()
item['img_name'] = li.xpath('./a[1]/img/@alt').extract_first() + '.jpg'
# print('***********')
# print(item)
yield item
items.py 파일
import scrapy
class ImgproItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
img_src = scrapy.Field()
img_name = scrapy.Field()
pipelines.py 파일
from scrapy.pipelines.images import ImagesPipeline
import scrapy
import os
from imgPro.settings import IMAGES_STORE as IMGS
class ImgsPipLine(ImagesPipeline):
def get_media_requests(self, item, info):
yield scrapy.Request(url = item['img_src'],meta={'item':item})
#
def file_path(self, request, response=None, info=None):
item = request.meta['item']
print('########',item)
filePath = item['img_name']
return filePath
def item_completed(self, results, item, info):
return item
settings.py 파일
import random
BOT_NAME = 'imgPro'
SPIDER_MODULES = ['imgPro.spiders']
NEWSPIDER_MODULE = 'imgPro.spiders'
IMAGES_STORE = 'D:\\ImgPro' #
LOG_LEVEL = "WARNING"
ROBOTSTXT_OBEY = False
# user-agent
USER_AGENTS_LIST = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]
USER_AGENT = random.choice(USER_AGENTS_LIST)
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
# 'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
'User-Agent':USER_AGENT
}
# pipeline
ITEM_PIPELINES = {
'imgPro.pipelines.ImgsPipLine': 300,
}
이상 은 Images Pipeline 을 이용 하여 사진 을 저장 하 는 방법 입 니 다.오늘 갑자기 궁금 한 것 이 생 겼 습 니 다.파충류 가 잘 기어 다 니 는 것 이 정말 콩 밥 을 배 불리 먹 었 습 니까?여러분,대답 해 주세요!더 많은 관련 Python scrapy 다운로드 저장 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.