python 과 scrapy 질문 입니다.
조회수 1874회
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
코드에는 문제가 없어보이는데 왜 저장이 제대로 안되는지 모르겠네요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
위의 코드는 process_item의 입력 인자 값이
item = {"name": ["홍길동 (홍길동)",] }
과 같은 형태여야 정상적으로 동작합니다.예를 들어
item = item = {"name": "홍길동 (홍길동)", }
과 같은 형태면 원하는 대로 답이 안나올거에요. 입력 값을 한 번 확인해보세요.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력