인프런 커뮤니티 질문&답변

Seungwoon Song님의 프로필 이미지
Seungwoon Song

작성한 질문수

현존 최강 크롤링 기술: Scrapy와 Selenium 정복

실전 크롤링: 지마켓 크롤링하며, scrapy 실전 활용법 익히기5

한 함수에서 Request를 두번 쓰면 한번만 작동하는 문제 발생

작성

·

333

1

for index, category_link in enumerate(category_links):
            yield scrapy.Request(url='http://corners.gmarket.co.kr/'+category_link, callback=self.parse_subcategory, meta={'category_name':  category_names[index]})
for index, category_link in enumerate(category_links):
            yield scrapy.Request(url = 'http://corners.gmarket.co.kr/'+category_link, callback = self.parse_item, meta = {'category_name':  category_names[index]})
      

위와 같이 한 함수 내에서 Request를 두번 요청하는 경우 한번은 작동하지 않는 문제가 발생되는데 혹시 해결 방법을 아실까요/

답변 3

1

안녕하세요, 위에 항목을 적용시

다음과 같은 에러가 뜹니다.

ModuleNotFoundError: No module named 'scrapy.dupefilter'

1

안녕하세요. 아마 URL이 중복되어서, request가 두번 요청이 안되는 것으로 보입니다. 각 URL을 보시면 corners.gmarket.co.kr 로 앞의 URL이 동일해서요.

이 부분은 강좌에서 설명한 부분이 있고, 첨부드린 프로젝트 코드에서도 확인해보실 수 있는데요.

settings.py 에서 다음 항목에 앞에 # 을 삭제해서, enable 하시면, 중복 URL에 대해서도 요청이 가능합니다.

감사합니다.

DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter'

0

DUPEFILTER_CLASS ='scrapy.dupefilters.BaseDupeFilter'

다음의 코드를 , setting.py 에 적용시켜 보세요! 

감사합니다

 

Seungwoon Song님의 프로필 이미지
Seungwoon Song

작성한 질문수

질문하기