본문 바로가기

Back-end109

파이썬으로 웹스크래퍼 만들기 - 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.
파이썬으로 웹스크래퍼 만들기 - 4 1. 회사 이름 추출하기 - 앞선 포스팅에서 설명했던 동일한 방식으로 HTML의 구조를 분석하여 이번에는 회사의 이름을 추출해 보자. - HTML을 분석해보면 이전에 이미 알고있는 div태그에 company라는 span에 String으로 회사 이름이 들어가 있는 것을 볼 수 있다. 하지만 가끔 몇몇 회사들은 a태그로 회사이름에 링크를 걸어놓는 경우가 있다. 우리는 이 두가지 경우 모두를 생각하여 코드를 만들어 보자. (if문을 사용한다.) - 결과는 아래와 같이 잘 출력된다. - 이 결과의 문제점은 결과간의 공백이 존재한다는 것이다. 이 공백을 없애주기 위해 우리는 strip() 함수를 사용할 수 있다. - 결과는 아래와 같이 공백없이 깔끔하게 나오는 것을 확인할 수 있다. 2. 코드정리 - 지금까지 만.. 2020. 8. 4.
파이썬으로 웹스크래퍼 만들기 - 3 1. pages에서 String만 추출하기 (1) 지난 시간에 우리는 배열에 span부분을 저장했습니다. 그렇다면 span에 있는 String만 찾아서 저장해봅시다. (2) 하지만 우리가 진행했던 위의 코드는 효율성이 좋지 않은 코드입니다. a태그인 anchor를 찾고 그 안의 span을 찾고 span에 있는 string을 추출해 내는 방식이기 때문입니다. HTML의 구조를 잘 안다면 이런 과정을 생략하고 한번에 string을 찾을 수 있다는 것을 알게됩니다. anchor에서 String을 바로 찾아내는 방법이죠. (3) 어떻게 이렇게 쉽게 찾을 수 있을까요? 크롬의 개발자 도구를 이용하여 HTML의 구조를 파악해 봅시다. (4) 위의 사진에서 알 수 있듯이 a태그 아래에 존재하는 String은 페이지 .. 2020. 8. 3.
파이썬으로 웹스크래퍼 만들기 - 2 1. 사이트 주소(url) 알아내기 - indeed 사이트의 정보를 추출하는 웹 스크래퍼를 만들어 볼겁니다. 자신이 원하는 검색어로 검색을 한 뒤에 맞춤검색을 통해 페이지에 표시할 검색결과의 개수를 50개로 설정해 주세요. 이후 나온 검색결과의 url 주소를 복사해두시면 됩니다. 저는 서울특별시의 직장 중 java를 필요로하는 신입공채를 검색하였습니다. 2. Requests 라이브러리 설치하기 - 웹 스크래퍼를 만들기 위해서는 먼저 URL에 대한 요청을 처리할 수 있는 기능을 가진 라이브러리를 필요로 합니다. 그렇기에 Requests라는 라이브러리를 설치합니다. (1) 왼쪽 메뉴바에서 패키지를 선택하고 request를 검색한 뒤에 첫번째 검색결과를 선택합니다. (2) 첫번째 검색결과를 선택 후 오른편에 .. 2020. 8. 3.
파이썬으로 웹스크래퍼 만들기 - 1 1. Web Scrapper의 개념 - 웹 스크래퍼는 인터넷 웹사이트에서 데이터를 추출하는 기술이다. 웹스크래퍼가 무엇인지 공부를 하면서 그동안 내가 사용하던 다양한 기술들이 웹 스크래핑에 기반하였다는 것을 이제서야 알게 되었다. 예를 들어, 어떤 기사의 링크를 복사하여 SNS에 또는 메신저에 올리면 링크와 함께 자동으로 그 기사의 preview가 보여진다. 웹 스크래핑 기술을 이용해 해당 기사의 링크에 있는 대표 사진 등의 정보를 가져와 보여주는 것이다. 이것이 web scrapper이다. - 웹 스크래핑 기술을 사용해 우리는 다양한 것들을 만들 수 있다. 특정 물건의 가격을 몇몇 웹사이트에서 수집하여 이를 데이터하는 등 요즘 우리가 말하는 빅데이터의 기본이 되는 데이터를 수집하는 기본적인 방법중의 하.. 2020. 7. 31.
파이썬 기초문법 - 5 1. Module and Import - 파이썬에는 Java의 클래스처럼 다양한 기능들을 모아둔 Module이 존재한다. 이를 가져오는 작업을 Import라고 한다. - 기본 구조는 아래와 같다 import 모듈명 → 사용할 모듈을 import 하는 방법이다. 모듈명.함수명() → import된 모듈에 존재하는 함수를 호출하는 방법이다. - 예제로 Math 모듈에 존재하는 ceil()이라는 올림을 해주는 함수를 사용해 볼것이다. 이 예제를 통해 module을 import하여 사용하는 방법을 배워보자. - 하지만 위의 예시처럼 math모듈을 import한다면 필요하거나 사용하지 않는 기능이 함께 import된다. 자주 사용하는 모듈 한두개 정도는 괜찮을지 몰라도 이런식의 import가 반복된다면 프로그램 .. 2020. 7. 31.
파이썬 기초문법 - 4 1. For Loop - for문은 반복문의 한 종류이다. 어떤 작업을 조건만큼 반복해서 수행해야 할 경우 사용한다. - 기본적인 구조는 아래와 같다. for 변수명 in 배열명: → 여기서 변수명은 for문이 수행되면서 생성되는 변수이다.(변수명은 마음대로 지정) 수행문 - 자세한 이해를 위해 월요일~금요일을 담고있는 days라는 Tuple의 각 요소를 For문을 사용해 출력하는 예제를 살펴보자. - 위의 예제처럼 배열이 먼저 선언되어 있어야만 작동하는 것은 아니다. (아래의 사진을 참고해 주세요) - 앞서 배운 if문을 함께 for문을 사용하여 특정 조건에 반복문을 탈출하도록 만들 수 있다. - 월요일~금요일을 담고있는 days라는 Tuple의 각 요소를 For문을 사용해 출력하는데 days의 값이 .. 2020. 7. 31.
파이썬 기초문법 - 3 1. if ~ else - if~else 문은 거의 모든 개발 언어가 갖고 있는 조건문이다. 조건에 따라 어떤 선택을 할지 정해야 하는 알고리즘을 만들때 사용된다. 기본적인 구조는 아래와 같다. if 조건문A: → 조건A의 값이 참(True)인 경우, 수행문 A를 실행하게 된다. 수행문A else: → 조건A에 해당하지 않는 경우, 수행문 B를 실행하게 된다. 수행문B - 조건에 따른 선택이 다양한 경우, if문을 여러번 써야할 경우가 발생한다. 그럴때는 if ~ elif ~ else ~ 를 사용한다. 여기서 elif는 else if를 지칭하는 명령어다. 기본적인 구조는 아래와 같다. if 조건A: 수행문A elif 조건B: 수행문B elif 조건C: 수행문C else: → 위의 조건A,B,C에 해당하지.. 2020. 7. 30.
파이썬 기초문법 - 2 1. How to make a Function (A) 함수 정의하기 def 함수명(): (들여쓰기)실행문 *tab키를 이용하여 들여쓰기를 꼭 해야한다. (B) 함수 호출하기 함수명() *만약 함수명 뒤에 괄호()가 없으면 호출되지 않습니다. 2. Argument/Parameter(매개변수) 이용하기 (A) Argument를 이용한 함수 선언하기 def hello_to(Argument): print("Hello", Argument) ex) def hello_to(name): print("Hello", name) (B) 함수 호출하기 hello_to("Raphael") hello_to("Michael") *Argument 없이 함수를 호출할 경우 오류 발생 (C) default value를 가진 함수 만들기.. 2020. 7. 29.