목록BF 2024/웹 데이터 수집 (13)
** HTML ( HyperText Markup Language) > 확장자는 html, htm이며 ie나 chrome, safari 같은 웹 브라우저에서 읽을 수 있는 웹 문서를 만들기 위한 언어이다 ** HTML 의 특성 > 하이퍼텍스트 : 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트 > 마크업 언어 : 문서의 내용 뿐만 아니라, 태그 등을 이용하여 글자 크기, 모양 등 문서의 출력 형태까지 명기하는 언어의 한 형태이다 vs 마크다운? : 일반 텍스트 문서로 마크업에 비해서 서식이 간결함 > HTML에서는 태그(tag)라고 하는 심볼을 사용하여 문서의 구조, 출력 형태 등을 조정한다 > 태그는 를 사용하여 표시하며, 으로 시작하고, 사이에는 내용이 들어간다 으..
** 모듈화 프로세스 1. url 생성 > 2. 테스트 페이지 수집 ( 서식 맞추기 ) > 3. 본 수집 > 4. 데이터 가공 > 5. 필요한 형태로 저장 1. url 생성 * 우선 모듈화 이전에, 네이버 개발자 페이지에서 정보 수집을 원하는 종목의 파라미터들을 확인한다 딱 요청 변수만 봤을때, 어떤식으로 집어 넣어야 하는지 감이 안온다. 예시를 보면, 요청해야 할 url 이 어떤식으로 구성되어 있는지 알 수 있다 base url ~ search/ + shop(네이버 쇼핑) + ?query= + 인코딩된 검색어 + &display= ~ .... 각 항목마다 앞에 &가 붙고, 디스플레이 ..
** Documents > 서비스 API (목적에 맞는) > 언어 선택 ( 예제는 검색 ) ** 전체적인 구조 ( 위의 예시 코드 ) * 영화 , 카페 , 쇼핑 등 정상 출력
https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com * id 와 비밀번호 확인이 필요하니, 해당 정보들을 저장해놓거나, 개발자 센터 홈페이지는 즐찾이 편하다 * API 를 사용해보는 것이니, 웹 환경에 로컬 주소만 등록해놓는다 * 각종 API 별 호출 제한 * 예제는 네이버에서 제공 , 파이썬 예제도 제공 https://developers.naver.com/docs/serviceapi/datalab/search/search...
** Xpath // : 최상위 엘리먼트 표현 * : 자손 태그를 검색해라 -> div form / : 자식 태그를 검색해라 -> div > form * xpath 와 css selector 에서 자식 태그 표현 방법 xpath = "//*[@id="asdf"/div/form/tbody/td[2]/button]" 이런 경우이면, td는 tbody 밑에 td이름을 가진 두번째 ~ css selector = "#asdf > div > form > tbody > td:nth-child(2) > button "nth-child(n)" n 번째 자식 태그 * find element_by ~ , find element_by ~ 단일 or 복수 태그
** 동적 크롤링을 연습해보자 * 우선 유투브로 이동해보자 * 현재 브라우저의 창 크기 구해보기 , driver.get_window_size() > 현재 셀레늄과 크롬 드라이버로 구동중인 브라우저의 창 크기에 따라서 값이 바뀐다. * 이외에도 * 스크롤 가능한 높이 가져오기 > 자바 스크립트 코드 실행(driver.execute_script) + return document.body.scrollHeight , 그러나 연습 케이스로 지정한 유투브에서는 0 ( 최상단 으로만 뜸 ) > 원래는 현재 페이지에서 가능한 스크롤 높이만큼 이동해야 하나, 현재 작동하지 않기 때문에 임의의 값 3,000으로 시행 > 페이지가 3000만큼 밑으로 이동됨. > 이동은 window.scrollTo(0,0) > 그리고 좌표 ..
** Beautiful Soup 만으로 , 즉 html 주소(문서)로만 해결할 수 없는 상황이 있다. 1. 접근할 웹 주소를 알 수 없을 때 2. 자바스크립트를 사용하는 웹페이지의 경우 ( 필요한 정보가, 해당 페이지 내에서 클릭이나 로그인 .. 등을 하여 찾아야 할 경우 ) ** Selenium ( 웹 브라우저 원격 조작 도구 ). > 페이지 내 스크롤, 문자의 입력, 화면 캡쳐 등등 다양한 기능을 시행할 수 있다 ** Selenium 을 사용하려면 > 파이썬 모듈 설치 > 크롬 드라이버 설치 ( 크롬 버전에 맞게 크롬드라이버도 버전 업데이트가 필요하다, 아니면 오류가 발생한다 ) > 앞 자리만 맞아도 우선은 큰 문제가 없다 ** 이후 selenium 에서 webdriver를 import ** 드라이버..
* 웹페이지 url에 한글이 들어가 있을 경우, url 주소를 복붙하게 되면 이상한 문자들로 변형이 된다.. * 웹주소가 utf-8 기법으로 인코딩되어 있는데, 그것이 풀어지기 때문이다. ** 그럴땐 utf-8 인코딩 해제 시 문제가 발생할 여지가 있는 한글문자들을 변환하면 된다. ** urllib.parse.quote("해당문자")를 통해서 인코딩이 가능하다 * 예제는 프롬 소프트웨어의 갓겜 엘든링으로 한다. 아직 사놓고 1시간 밖에 못했다.. ** 이후 해당 url을 requests(요청) 해주고 , 요청한 자료의 url을 오픈해서 response를 수신한다 ** 수신한 페이지를 html파싱 해준다. ++ 간혹 페이지에 따라서 http response 403 을 수신할 때가 있다. req = Requ..
** request : 요청 ** response : 응답 웹 상호작용 url 요청 -> 요청 확인 및 응답 -> 브라우저에서 응답 내용 확인 # http 상태 코드 # 세부적인 상태 코드는 여기서 확인해 볼 수 있다 https://developer.mozilla.org/ko/docs/Web/HTTP/Status ** open_url.stats() 로 respond 확인, 200번대라서 정상 응답이 수신된 것을 확인할 수 있다. ** url.status 말고 requests 모듈의 .get()으로 응답을 확인해볼 수 있다. ** requests.get() "href"같은 속성값 가져오기 ** requests.post() ** requests(url) 에도 이미 .text .content 로 내용을 확인해..
** 네이버 금융에서 환전 고시 환율정보 가져오기 ** 불러올 페이지 요소 확인하기 -> 미국 usd ** 우측 옵션에서 막대기 클릭 > 도구 더보기 > 개발자 도구 선택 ** safari 등에서도 개발자 옵션에서 페이지 소스 보기 / 개발자 모드 선택하면 동일함 ** 검사할 페이지 요소 선택 버튼을 누르고 , 확인하고자 하는 소스가 있는 곳에 마우스를 오버레이 하면 ** 우측에서 해당 소스코드의 태그와 속성 텍스트를 확인해볼 수 있음 ** 우선 url을 open 하려면 , url request 를 보내야 한다 from urllib.request import urlopen from bs4 import BeautifulSoup 필요한 모듈 호출 이후 url을 가져와서 변수=urlopen() 변수를 호출하면..
: html 로 만들어진 웹 문서 웹 페이지 제목 브라우저의 검색창에 해당 텍스트가 표시된다 > 네이버 역시 NAVER 네이버가 본 위치에 표시된다 만약 태그의 값을 바꾸면 , 저 위의 값도 바뀐다 태그 : paragraph로 , html 문서 내의 텍스트 태그 : href로 링크를 삽입하는 태그 , target=blink 옵션 시 새창에서 열림 cmd s(save) 로 저장후 html 페이지 refresh를 하면 다음과 같이 페이지가 수정되어 있다. 하이퍼링크 클릭시 이동됨 이외에도 bold , itallic 등 , 추가적인 문법은 필요할때 찾아서 쓰자.
* 터미널에서 homebrew 설치 > install homebrew 경로 입력 > pw 입력 > 설치 완료 * homebrew로 vs code 설치 terminal 에서 바로 brew install visual-studio-code January 2022 (version 1.64) 버전이 설치됨 * vs code > 복잡해 보여도 굉장히 많은 쓰임새가 있다 > 윈도우 환경을 좋아하지 않는 사람들도 vs code의 경우는 괜찮다고 생각하는 편인것 같다 * vs code 실행 > terminal open > code > folder 작업경로에 지정 > python 작업을 할것이니, 확장프로그램으로 extension : python 을 설치 > 이후 cmd + shift + p + search"select ..