본문 바로가기

전체 글502

HTML/CSS - Block & Inline 1. Blocks and In-lines - HTML의 태그들은 크게 Block과 In-line으로 분류되고 어떻게 정렬되느냐의 차이가 있다. Blocks: HTML 요소간의 정렬이 수직으로만 가능하다. 즉, 요소 옆에 다른 요소를 배치할 수 없다. ex) div, p태그 등 In-lines: HTML 요소간의 정렬이 수평으로 가능하다. 즉, 요소 옆에 다른 요소를 배치할 수 있다. ex) span태그 등 ex) 1개의 div와 3개의 span태그를 이용하여 아래와 같이 요소를 생성해보겠습니다. - 위의 사진을 보면 div옆에 공간이 많은데 불구하고 span태그가 div태그 아래에 배치되어있는 것을 볼 수 있다. 왜 그런 것일까? - div태그는 Block형태의 태그이기 때문에 수직정렬만 가능하다. 눈으.. 2020. 8. 18.
HTML/CSS - 기본구조 및 tags 1. MDN HTML 문서 - HTML에는 정말 다양한 태그가 있습니다. 모든 태그를 다 기억해서 사용하는 것은 쉽지 않고 자주 사용하는 태그를 기반으로 모르는 태그나 필요한 기능은 검색을 하는 방식으로 사용합니다. - 구글에 HTML 관련검색을 할 경우, 검색어 뒤에 mdn을 붙이면 HTML 태그가 정리되어 있는 Mozilla의 문서가 검색 결과로 는데 이 문서에는 더욱 정확한 태그 설명과 사용법 그리고 한국어도 지원하니 이를 참고하시길 바랍니다. https://developer.mozilla.org/en-US/docs/Web/HTML/Element HTML elements reference This page lists all the HTML elements, which are created using.. 2020. 8. 17.
Data Structure - Stack & Linked List 1. Stack(스택) - 쌓다 - 큐와 다르게 데이터의 출입이 한쪽에서만 발생한다. - 그러므로 가장 나중에 삽입된 데이터가 가장 먼저 나가는 구조를 갖고 있다.(LIFO - Last In, First Out) [주요 기능] push(): 스택에 데이터 삽입 pop(): 스택에서 데이터 꺼내기 [Stack 활용의 예] - Stack은 프로세스 실행 구조의 기본이다. 그러므로 프로세스에서는 스택의 자료구조를 사용한다. [Stack 장점] 구조가 단순해서 구현이 쉽다. 데이터를 저장/읽기(검색) 속도가 빠르다. → 프로세스 실행 구조로 사용하는 이유 [Stack 단점] 데이터의 최대 개수를 미리 정해야 한다. 그렇기에 남는 공간이 생길 수 있다.(낭비 발생 - 이런 이유로 파이썬은 재귀함수를 1000번까지.. 2020. 8. 14.
Data Structure - Array * 해당 포스팅은 파이썬을 이용한 알고리즘 공부를 기록합니다. 1. 자료구조와 알고리즘이란? - 자료구조(= data structure): 대량의 데이터를 효율적으로 관리할 수 있는 데이터구조를 의미한다. - 데이터의 특성과 구조에 따라 데이터를 효율적으로 처리하기 위해 필요한 코드가 달라진다. 현실 속 데이터관리의 예시) 학년/반/학번, 우편번호, 전화번호, 주민등록번호 등등 현실 속 자료구조의 예시) 전화번호부, 사전 대표적 자료구조) 배열, 스택, 큐, Linked List, Hash Table, Heap, etc - 알고리즘(= algorithm): 어떤 문제를 풀기 위한 절차 또는 특정 입력에 따라 원하는 출력을 얻게하는 프로그래밍 - 프로그래밍에서 어떤 문제를 풀기 위한 방식이나 과정은 정해져.. 2020. 8. 12.
Flask로 웹스크래퍼 만들기 - 전체 코드 * 복붙 하시고 코드정리 하시길 바랍니다. 1. scrapper.py import requests from bs4 import BeautifulSoup LIMIT = 50 def get_last_pages(url): result = requests.get(url) soup = BeautifulSoup(result.text, "html.parser") pagination = soup.find("div", {"class": "pagination"}) links = pagination.find_all('a') pages = [] for link in links[:-1]: pages.append(int(link.string)) max_page = pages[-1] return max_page def extrac.. 2020. 8. 12.
파이썬 포스팅을 마치며 8월 9일에서 10일로 넘어가는 지금, 새벽 두시쯤 됐네요. 드디어 저의 첫 포스팅인 파이썬 웹스크래퍼 포스팅을 끝냈습니다. 첫 포스팅이라 많이 부족하지만, 앞으로 성장해서 더 좋은 포스팅으로 여러 정보를 공유하겠습니다. 제가 파이썬을 제일 첫 포스팅으로 시작한 이유는 파이썬을 배워서 알고리즘 공부를 시작하기 위함이였습니다. 이제 기본적인 파이썬 문법을 배웠으니 내일부터는 알고리즘 관련 포스팅과 HTML/CSS 관련 포스팅을 시작할 예정입니다. 누가 시켜서 하는 것은 아니지만 제가 블로그를 시작한 이유이자 목표로서 반드시, 꼭 좋은 개발자가 되어 취뽀하는 모습을 기록하겠습니다. 그때까지 화이팅! 2020. 8. 10.
Flask로 웹스크래퍼 만들기 - 4 1. 검색결과를 CSV파일로 다운받는 기능 (1) CSV파일로 다운받을 수 있도록 export 함수를 만들어줍니다. 아래 사진을 참고해주세요. (2) 다운로드를 받을 수 있는 링크 또는 버튼을 report.html에 만들어줍니다. (3) 이제 CSV로 export하는 기능을 만듭니다. 이전 포스팅에 보면 save.py라는 이름으로 이미 만들어놓은 코드가 있습니다. 그걸 다시 사용해보겠습니다. - 저는 exporter.py라는 파일을 만들어 기존의 save.py에 있던 코드들을 복사하였습니다. 여기서 중요한 부분은 save_to_file함수를 사용하기 위해서는 jobs라는 매개변수가 필요하다는 것입니다. main으로 가서 작업해봅시다. (4) 사용할 새로운 함수를 import를 해주고, export함수에서.. 2020. 8. 10.
Flask로 웹스크래퍼 만들기 - 3 1. 통합구현 - 저번 포스팅에서 word로 검색단어를 받아오는 법을 알았으니 이 기능과 이전에 만들어 놓은 스크래퍼를 연결하겠습니다. (1)먼저 스크래퍼 코드를 복사해서 파일을 따로 만들어줍니다. 저는 indeed.py 코드만 사용했습니다. - 위의 사진처럼 scrapper파일을 생성해서 indeed 파일의 코드를 복붙했습니다. (2) report함수에서 받아온 word변수의 값을 scrapper에서 import해온 get_jobs()함수의 매개변수로 사용합니다. - 여기서, 다른 함수도 많은데 왜 하필 get_jobs()함수와 word변수를 연결하는걸까요? - 그 이유는, report페이지가 검색결과를 출력하는 부분이기 때문입니다. 검색단어를 받아오면서 동시에 검색결과를 출력해야 하는 역할을 repo.. 2020. 8. 9.
Flask로 웹스크래퍼 만들기 - 2 1. Query Argument - 구글에 들어가서 어떤 것을 검색하면 페이지가 나오고 알 수 없는 의미의 URL이 나옵니다. 예를 들어, something을 구글에서 검색하면 아래와 같은 URL을 얻게 되죠. - 이 URL을 분석해보면 /search 라는 경로에 들어갔고 제가 검색한 단어(q=something), 제가 크롬을 사용한다는 것을 알 수 있습니다(aqs=chrome). 이 이외의 다른 부분의 의미는 모르지만 이와 같이 제가 검색한 단어가 URL에 표시된 것을 볼 수 있습니다. 이런 것을 Query Argument라고 합니다. 저의 검색어가 매개변수로써 URL에 작동하는 것이죠. 그렇다면 간단하게 만들어 보겠습니다. - form을 사용해서 /report라는 경로를 설정하고 get방식을 이용하였.. 2020. 8. 9.
Flask로 웹스크래퍼 만들기 - 1 - 이번 포스팅에서는 앞서 만든 웹스크래퍼를 Flask를 이용하여 웹으로 구현하는 방법을 포스팅합니다. 1. Flask란 무엇인가? - Flask는 파이썬을 이용해 웹사이트를 만들 수 있게 도와주는 micro-framework입니다. 기존의 Java의 Spring이나 Python의 Django와는 다르게 환경설정에 특별히 set-up해줄게 없어서 사용하기 편한 Framework입니다. 2. Flask 다운받기 및 설치 - 저는 repl.it이라는 사이트에서 파이썬을 이용하고 있기 때문에 설치하는데에 어려움이 없습니다. 혹시 로컬로 작업하시는 분들은 먼저 Flask 사용을 위해 환경구축을 해주세요. 3. 시작하기 (1) Flask 설치를 마치고 import해준 다음에 Flask의 이름을 설정합니다. app.. 2020. 8. 9.
파이썬으로 웹스크래퍼 만들기 - 6 1. CSV 파일 만들기 - 구직사이트에서 받아온 데이터를 CSV(엑셀)파일의 형식으로 만들어보겠습니다. - indeed에서 받아온 자료부터 만들어보겠습니다. (1) save.py - open이라는 함수는 파일을 읽거나 해당 파일이 존재하지 않을 시 생성하는 함수입니다. 이 함수를 이용해 파일을 생성합니다. - 코드작성의 편의를 위해 잠시동안 스크래퍼 기능들을 주석처리합니다. save.py에 함수를 만들어준 뒤 main에서 실행을 하게 되면 job.csv라는 파일을 생성합니다. (2) 행(column) 만들기 - indeed에서 받아온 정보는 title, company, location, link 이렇게 4가지 입니다. 이 4가지 종류의 데이터가 엑셀파일에서 행(column)의 역할을 하게 됩니다. 아래.. 2020. 8. 6.
파이썬으로 웹스크래퍼 만들기 - 5 1. StackOverflow를 이용한 크롤링 예제 - 이번에는 StackOverflow를 이용해 스크래퍼를 만들어봅시다. 이전 포스팅에서와 같은 방식으로 직접 만들어보세요. - 아래에 저의 코드를 함께 올려놓겠습니다. 1. indeed.py import requests from bs4 import BeautifulSoup LIMIT = 50 INDEED_URL = f"https://kr.indeed.com/jobs?q=java&l=%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C&jt=new_grad&limit={LIMIT}&radius=25" #검색결과 마지막 페이지번호 찾는 function def get_last_pages(): result = requests.get.. 2020. 8. 5.