Python

Develop/DevCourseTIL

05.02 데이터 엔지니어링 17일차 - crawling project (2)

오늘은 어제 해결하지 못 했던 부분을 해결하고 코드를 리팩토링했다. 먼저, Features지만 뉴스 기사가 아닌 카테고리에 해당하는 Features가 있어 이를 크롤링에서 제외하는 코드를 추가했다. features = driver.find_elements(By.PARTIAL_LINK_TEXT, "Features") for feature in features: # 기사가 아닌 카테고리 features는 제외 if feature.text == 'Features': print(feature.text) continue Features에 해당하는 elements를 전부 읽으면서 text가 Features인지 확인한다. 뉴스 기사일 경우, Features.text에 제목이 포함되어 있고 카테고리면 Features로..

Develop/TroubleShooting

stale element reference: element is not attached to the page document

situation selenium으로 크롤링 작업하는 중 위와 같은 오류 메세지가 떴다. 오류 없이 잘 작동하는 걸 확인하고 코드를 추가했는데 갑자기 이 오류 메세지가 뜨더니 늪에 빠졌다. 메세지를 직역하면 elements가 페이지 문서(아마 html)에 첨부되지 않았다고 한다. 즉, 그 요소가 html에 없는데 크롤링하려고 해서 생긴 상황이고 웹페이지가 빨리 넘어가서 elements를 찾을 수 없다는 에러이다. solution 따라서 페이지가 넘어가지 않도록 time.sleep() 을 통해 웹페이지 이동을 지연시켜 주면 된다.

Develop/TroubleShooting

IndexError: Column(s) contents already selected 해결

pandas.groupby 실행 중 이러한 오류가 떴다면 contents에 해당하는 컬럼이 groupby 후 계산할 수 없는 컬럼일 확률이 높다. 따라서 type이 object일 경우, contents.fillna('')를 이용해 빈 행을 채워줘야 한다.

Develop/TroubleShooting

실패없는 github repository 연동 방법

준비물: github 계정, git bash 프로그램 1. github 사이트에서 new repository 생성 이 때 git 주소 미리 복사하기! 2. git bash을 키고 git을 연동하고자 하는 로컬주소로 이동 3. 'git clone git주소' 입력 이 때 git 주소는 1-1에서 복사해둔 주소 이렇게 하면 repository명으로 폴더와 폴더 내 .git 폴더와 README.md 생성됨 이렇게 하면 연동이 끝났다:) 그 후의 commit, push, pull 등은 다른 연동방법과 동일하게 진행하면 된다. git add . git status git commit -m '커밋메세지' git push [origin] [브랜치명]

Language/Python

[python] 엑셀 파일 내 여러 시트에 저장하기 - pandas

오늘은 python을 이용하여 excel 여러 시트의 저장하는 방법을 알아보도록 하자. 시트별로 저장하는 기능은 pandas 라이브러리를 이용하면 쉽게 적용할 수 있다. 예제를 통해서 보면 간단하다. 하나의 엑셀 파일 내 여러 시트에 저장 import pandas as pd writer = pd.ExcelWriter(SAVE_DIR, engine='openpyxl') # SAVE_DIR: excel 파일을 저장하고자 하는 경로 # dfresult: 저장하고자 하는 데이터 dfresult1.to_excel(writer, sheet_name='dfresult1의 시트명') dfresult2.to_excel(writer, sheet_name='dfresult2의 시트명') dfresult3.to_excel(w..

Language/Python

[python] deque란? deque 이해하고 사용하기

먼저 큐라는 개념이 필요한데 큐는 선입선출(FIFO)의 자료구조라고 할 수 있다. Queue 라고도 하는데, Queue라는 단어 자체가 표 같은 것을 구매하기 위해 줄서는 것을 의미한다. 데이터가 들어오는 위치는 가장 뒤에 있고, 데이터가 나가는 위치는 가장 앞에 있어서, 먼저 들어오는 데이터가 먼저 나가게 된다. 이러한 큐를 양방향으로 쓸 수 있게 만든 자료구조가 데크(deque)이다. deque 특징 큐를 양방향으로 쓸 수 있게 만든 자료 구조 양 끝 element에 대해서 append와 pop 가능 스택과 큐를 동시에 사용 가능 무엇보다 데크를 사용해야 하는 이유는 속도에 있다. 리스트는 O(n)인데 데크는 O(1)이고 각각 n번씩 반복하면 리스트 구현은 O(n^2)지만 데크 구현은 O(n) 성능의..

향식이
'Python' 태그의 글 목록