techit aischool summary (멋쟁이 사자처럼)
1주일 간의 공부 키워드로 복습하기
read_html로는 수집이 안된다 (봇 방지를 위해서 네이버가 설정)
requests 도구를 사용한다. HTTP 요청을 보내서 응답을 받아온다(requests_code == 200 정상)
request는 작은 브라우저 이기 때문에 html 문서를 반환한다. API를 호출한다면 JSON, XML 등의 문서를 받을 수도 있다.
table 태그를 찾아 데이터프레임(엑셀의 표 형태)로 만들어줍니다.
뉴스기사 수집때처럼 페이지를 순회하며 데이터를 가져옵니다.
병합 및 저장
1) 컴퓨터를 새로 산다. => 비용이 한정적이라면 CPU 보다는 메모리(RAM)에 투자하는 것을 추천합니다.
2) 불필요하게 실행되고 있는 프로그램을 종료
3) 브라우저의 창을 여러개 열어두는 것도 메모리를 많이 사용
4) 주피터 노트북을 사용할 때는 파이썬 노트북을 여러 개 열어두면 메모리 공간을 차지하고 있습니다. 사용하지 않는 노트북을 종료
5) 컴퓨터 재부팅
XML, HTML 파싱을 위한 도구
개행을 통해 가독성을 높여줌
soup.select - 위치를 따로 지정해 줄수있음
html.select('tr > td.subject > a')
html.find_all('td',{'class':'subject'},)
판다스에서 반복문 대신 쓰는것
progess_map,map
▪️DataFrame의 인덱스를 설정합니다.
▪️keys: 이 매개변수는 단일 열 키, 호출 DataFrame과 동일한 길이의 단일 배열 또는 열 키와 배열의 임의 조합을 포함하는 목록일 수 있습니다. 여기서 "배열"은 Series, Index, np.ndarray 및 Iterator 인스턴스를 포함합니다.
▪️drop: bool, 기본값 True. 새 인덱스로 사용할 열을 삭제합니다.
▪️append: bool, 기본값 False. 기존 인덱스에 열을 추가할지 여부입니다.
▪️inplace: bool, 기본값 False. DataFrame을 새로 만들지 않고 수정할지 여부입니다.
▪️verify_integrity: bool, 기본값. 거짓 중복에 대한 새 색인을 확인하십시오. 그렇지 않으면 필요할 때까지 확인을 연기하십시오. False로 설정하면 이 방법의 성능이 향상됩니다.
▪️DataFrame 또는 None을 반환합니다.
▪️axis의 기본값은 0, column(열)을 기준으로 index(행)을 합치게 됩니다.
▪️axis의 값을 1로 주면, index(행)을 기준으로 column(열)을 합치게 됩니다. 이 경우, 인덱스 값이 같은 행끼리 합쳐지게 된다. 따라서 해주기 전에 인덱스를 하나로 통일해주어야 합니다. + 인덱스를 리셋시켜도 됩니다.
=> 데이터프레임의 행과 열의 수, 데이터타입, 결측치를 제외한 데이터 수, 메모리사용량 등을 보여줍니다.
=> 기술통계: 기본값이 수치 데이터에 대한 기술통계
=> object 타입의 기술통계
=>itemcode 숫자 앞의 0 이 지워진다면 로 타입을 지정해 주면 문자형태로 읽어옵니다.
%time: 단일 명령문의 실행 시간
%timeit: 정확도 향상을 위해 단일 명령문을 반복적으로 실행하는 시간
%prun: 프로파일러로 코드 실행
%lprun: 라인별 프로파일러로 코드 실행
%memit: 단일 문장의 메모리 사용량 측정
%mprun: 라인별 메모리 프로파일러로 코드 실행
map, apply 로 데이터를 수집할때, 중간에 예외처리를 안해서 오류가 났다면 오류를 수정하고 처음부터 다시 수집해야한다. 오류가 난 것은 제외하고 수집하면 오류를 수정해서 나중에 수집 안된 데이터만 따로 수집해주면 된다.
- Application Programming Interface의 약어입니다.
- 서로 다른 사양의 컴퓨터나 컴퓨터 프로그램이 데이터를 주고받을 수 있도록 하는 도구입니다.
- 예제에서는 사용자가 서울 열린데이터 광장의 서버에서 데이터를 요청할 수 있게 합니다.
- eXtensible Markup Language의 약어입니다.
- 인터넷 상에서 구조화된 데이터를 전송하기 위해 만들어진 형식입니다.
- XML은 주로 다른 종류의 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 만들어졌습니다.