python 과 scrapy 질문 입니다.

조회수 1852회

scrapy 로 스크랩한 string을 re.sub를 사용해서 데이터에 저장하려고 합니다. 홍길동 (홍길동) 이런 string을 \n(홍길동)을 제거해서 홍길동 부분만 저장하는 코드를 작성했습니다. 파이썬 쉘에서는 정상적으로 나타나는데 막상 크롤링을 하면 제대로 저장되지 않네요. 아래는 pipeline에 있는 제 code 입니다.

class NameRegexPipeline(object):
    def process_item(self, item, spider):
        pattern = re.compile(r'\s\(.*\)$')
        for n in item['name']:
            item_re = re.sub(pattern, ' ', n)
        item['name'] = item_re
        return item

코드에는 문제가 없어보이는데 왜 저장이 제대로 안되는지 모르겠네요 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 원본 string을 볼 수 있는 url이 뭔가요? 입력이 "홍길동 (홍길동)"과 같은 형식이라면 잘 만드신것 같은데요. item의 내용도 같이 적어주실 수 있나요? 정토드 2016.7.7 05:32

1 답변

  • 위의 코드는 process_item의 입력 인자 값이 item = {"name": ["홍길동 (홍길동)",] }과 같은 형태여야 정상적으로 동작합니다.

    예를 들어 item = item = {"name": "홍길동 (홍길동)", }과 같은 형태면 원하는 대로 답이 안나올거에요. 입력 값을 한 번 확인해보세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)