• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

한번에 2가지 아이템을 가져오려면 어떻게 해야하나요?

22.04.07 20:30 작성 조회수 153

0

강의를 보고 한번에 2가지 아이템(ex. 상품명, 가격) 을 가져오려고 여러번 시도해봤으나 계속 실패했습니다.

 

그러다 강의 내용중에 정확히 이해는 되지않으나 제가 크롤링하려는곳에 적용하니 작동하는 코드를 찾았습니다.

 

def parse(self, response):

        product_types = response.css(

            'section.recent-posts div.card-body > h2 > a::text').getall()

        product_names = response.css(

            'section.recent-posts div.card-body > h4::text').getall()

        for index, product_type in enumerate(product_types):

            item = MycrawlerItem()

            print(product_type)

            item['product_type'] = product_type.strip()

            item['product_name'] = product_names[index].strip()

            yield item

 

위의 코드를 사용해보니 한번에 2가지 아이템을 추출해서 저장할수있었습니다.

제가 형광펜으로 칠한부분의 코드가 어떤 역할을 하길래 가능한건지 좀 더 자세한 설명해주실수 있나요?

제가 개인적으로 생각했을때는 for 구문을 각가의 아이템에 작성하여 총 2번의 for 구문을 사용했을때는 작동하지 않았는데 이 또한 뭐가 문제인지 설명좀 부탁드립니다 ㅠㅠ

답변 2

·

답변을 작성해보세요.

0

정찬희님의 프로필

정찬희

2022.08.02

for title,title2 in zip(titles,titles2):

zip을 사용 하면  for문에 두 변수를 사용할 수 있습니다.

0

안녕하세요.

강의 내에서 나온 enumerate 함수에 대한 사용법에 대해 문의하신 것인거죠? enumerate 는 인덱스(index)와 원소를 동시에 접근하면서 반복문을 돌릴 수 있는 함수입니다. 그래서, for 구문으로 리스트를 넣으면 각 아이템만 가져올 수 있지만, enumerate 로 리스트를 넣으면, 해당 아이템뿐만 아니라, 해당 아이템의 인덱스 번호를 가져올 수 있습니다.다음 링크로 for 구문과 enumerate 구문의 차이를 좀더 상세히 참고하실 수도 있으실 것 같아요.

https://www.daleseo.com/python-enumerate/

감사합니다.