• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

settings.py에 대해서 질문 드립니다.

21.05.10 16:55 작성 조회수 235

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요

settings.py에 대해서 질문 드립니다.

아래 검은 배경은 settings.py이며, 질문은 초록색이고 흰색은 셋팅한 결과입니다.

네이버 상품(약 10~100만개) 긁어오기로 크롤링 연습중입니다.

Q. 이 숫자를 키우면 속도가 빨라지고 낮추면 속도가 느려지는 것 같습니다. 동시 요청 처리 갯수 때문 인 것 같은
데요. 구글링 해본바 너무 요청속도가 빠르면 네이버에서 제 ip를 막을수도 있다는 글을 봤습니다. 혹시 어느 정도
수치가 적당할지 조언 부탁드립니다.
CONCURRENT_REQUESTS = 64


#이거는 웹 도메인 동시병렬처리 갯수라고 알고 있습니다. 바로위 셋팅한 기능과 어떤 차이가 있는지 궁금합니다.
또한 크롤링 실행 후 네이버에서 제ip를 막지 않을 정도이면서 빠른 데이터 수집가능하게하려면 어느정도 수치가
적당할지 조언 부탁드립니다.
CONCURRENT_REQUESTS_PER_DOMAIN = 16

#이 부분은 동시 IP 병렬 처리 갯수 지정하는 곳으로 알고 있습니다. 아래와 같이 셋팅해서 써봤으나 속도가 100배
이상 느려지는 것 같습니다. 랜덤 ip를 사용하면서 해당 사이트에서 벤 먹지 않기위해서는 랜덤 ip 관련 셋팅을
어떻게 할 수 있을지 조언 부탁드립니다.
CONCURRENT_REQUESTS_PER_IP = 16
ROTATING_PROXY_LIST = [
    '195.7.9.141:8080',
    '105.208.44.183:53480',
    '96.9.77.71:8080',
    '103.87.207.188:48792',
    '139.59.102.4:8080',
    '103.109.59.242:53281',
    '219.92.3.149:8080',
    '192.241.172.93:8080',
    '85.15.152.39:3128',
    '81.255.13.197:8080',
    '177.86.201.22:8080',
    '13.231.68.213:8081',
    '78.42.42.35:3128',
    '45.248.94.60:30858',
    '194.5.237.193:1038',
    '149.28.213.28:80',
    '115.75.2.213:38351',
    '75.119.144.28:80',
    '103.35.171.233:55443',
    '193.29.104.79:3128',
    ]
 
DOWNLOADER_MIDDLEWARES = {
 
'rotating_proxies.middlewares.RotatingProxyMiddleware'610,
'rotating_proxies.middlewares.BanDetectionMiddleware'620
 }
#이 부분은 매 요청마다 쿠키를 삭제하는 기능으로 알고 있습니다. 제 사용법이 적절한지 조언 부탁립니다.
COOKIES_ENABLED = False
TELNETCONSOLE_PORT = None
..~~ 각 yield마다 meta에 dont_merge_cookies:true를 넣어준 상태입니다.
yield scrapy.Request(url=i['link'], callback=self.product_1, meta={'dont_merge_cookies'True})
# 이 부분은 매 요청마다 랜덤 user-agent를 주기위해 셋팅했습니다. 하지만 실행하면, 속도가 100배 이상 느려
지는 것 같습니다. 어떻게 하면 최대한 빠르게 매요청마다 랜덤 user-agent를 보낼 수 있을지 조언부탁드립니다.
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware'None,
    'scrapy.downloadermiddlewares.retry.RetryMiddleware'None,
    'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware'400,
    'scrapy_fake_useragent.middleware.RetryUserAgentMiddleware'401,
}

FAKEUSERAGENT_PROVIDERS = [
    'scrapy_fake_useragent.providers.FakerProvider',
    'scrapy_fake_useragent.providers.FakeUserAgentProvider',     
    'scrapy_fake_useragent.providers.FixedUserAgentProvider',
]
# 만약 매 요청마다 random user-agent와 random ip를 네이버 쇼핑에 던질 수 있으면,
딜레이 시간 없애고 동시요청 갯수를 수천개로 늘려도, 밴 걸릴 확률이 낮을까요 ?

답변 1

답변을 작성해보세요.

0

안녕하세요. 말씀하신 부분은 강의 영상에 대한 내용이 아닌 부분이라서, 양해를 부탁드립니다.
본 질문/답변란은 본 강의의 영상이 이해가 안갈 경우등에 대한 질문/답변란이고요. 초반부 꿀팁 영상에서도 말씀을 드리고, 관련된 문의를 하신 질문/답변란에도 상세히 설명을 드렸는데요.
강의 자체가 평생 강의라서, 강의 영상이 아닌 문의까지 평생 답변을 드리는 부분은 무리가 있어서요.
또 온라인 수학 강의를 수강하면서, 강의에 나온 수학공식을 사용하는 강의 외의 문제나 문의를 평생 답변해주기를 기대하는 경우는 없는데요. 마찬가지로 본 강의도 이런 부분을 양해를 부탁드립니다.
요청하신 것은 거의 컨설팅 수준의 다양한 질문들이기도 해서, 충분히 이런 부분 이해하실 수 있으실 것 같습니다. 처음이시니, 매우 간략히만 답변드립니다.
Q. 이 숫자를 키우면 속도가 빨라지고 낮추면 속도가 느려지는 것 같습니다. 동시 요청 처리 갯수 때문 인 것 같은
데요. 구글링 해본바 너무 요청속도가 빠르면 네이버에서 제 ip를 막을수도 있다는 글을 봤습니다. 혹시 어느 정도
수치가 적당할지 조언 부탁드립니다.
--> 이것은 각 사이트 설정에 따라 다른 것으로 보입니다.
#이거는 웹 도메인 동시병렬처리 갯수라고 알고 있습니다. 바로위 셋팅한 기능과 어떤 차이가 있는지 궁금합니다.
또한 크롤링 실행 후 네이버에서 제ip를 막지 않을 정도이면서 빠른 데이터 수집가능하게하려면 어느정도 수치가 
적당할지 조언 부탁드립니다.
--> 이것은 각 도메인에 따른 동시접속수를 나타내는 것입니다
#이 부분은 동시 IP 병렬 처리 갯수 지정하는 곳으로 알고 있습니다. 아래와 같이 셋팅해서 써봤으나 속도가 100배
이상 느려지는 것 같습니다. 랜덤 ip를 사용하면서 해당 사이트에서 벤 먹지 않기위해서는 랜덤 ip 관련 셋팅을
어떻게 할 수 있을지 조언 부탁드립니다.
--> 이것은 IP 를 여러개 생성하다보니, 컴퓨터 성능상의 이슈가 있을 것 같습니다. 컴퓨터 성능이 높아지면, 비례해서 높아질 것 같기도 해요.
#이 부분은 매 요청마다 쿠키를 삭제하는 기능으로 알고 있습니다. 제 사용법이 적절한지 조언 부탁립니다. 
--> 이것은 쿠키를 사용하지 않도록 막는 기능으로 보입니다. 저도 사용해본 적은 없습니다. 쿠키가 삭제된다고 보시면 좋을 것 같습니다. 쿠키 없이 HTTP request를 보내겠다라는 의미로 이해가 됩니다.
# 이 부분은 매 요청마다 랜덤 user-agent를 주기위해 셋팅했습니다. 하지만 실행하면, 속도가 100배 이상 느려
지는 것 같습니다. 어떻게 하면 최대한 빠르게 매요청마다 랜덤 user-agent를 보낼 수 있을지 조언부탁드립니다.
--> user-agent 설정은 저도 써본적은 없습니다.
# 만약 매 요청마다 random user-agent와 random ip를 네이버 쇼핑에 던질 수 있으면, 
딜레이 시간 없애고 동시요청 갯수를 수천개로 늘려도, 밴 걸릴 확률이 낮을까요 ? 
--> 네이버 쇼핑을 크롤링해본적은 없어서요. 보통 크롤링은 큰 규모의 사이트에서는 다양한 모니터링을 통해, 막고 있으며, 이 부분은 꾸준한 모니터링을 통해 꾸준히 룰이 추가됩니다. 그래서, 특정 시점에 밴에 안걸리도록 해도, 결국 로그를 통해, 수천개가 크롤링되면, 그 후 바로 관련 엑션을 막을 수 있는 룰이 추가 됩니다. 
크롤링은 데이터를 수집하는 기술이지만, 그 목적은 순수히 데이터 분석 기술을 익히는데 있어서, 이렇게 특정 사이트를 어떻게 하면 사이트에 부하를 주더라도, 해당 사이트 모니터링에 걸리지 않고, 크롤링을 하는가를 익히는 것이 본 강의의 목표는 아니니까요. 좋은 강의가 선순환될 수 있도록 이 부분도 이해를 부탁드립니다.

답변해주셔서 감사합니다 !