파이썬 프로젝트9 파이썬 스크래퍼(python scrapper) * 플레이 시 광고가 나옵니다.(카카오 스테이션 사용으로 인해 광고발생) 1) 기능 설명 검색어를 기반으로 원격근무 채용정보를 StackOverflow, WeWork, RemoteOk 세가지 사이트에서 크롤링 Based on a search word, the program scraps remote jobs' info from the three different platforms which are StackOverflow, WeWork, RemoteOk. fake DB를 사용하여 검색한 자료를 저장하고 재검색되면 불러올 수 있도록 하여 크롤링 검색 속도를 향상 While the program is running, if a user searches the same word that has searched b.. 2020. 9. 7. 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. 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. 파이썬으로 웹스크래퍼 만들기 - 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. 파이썬으로 웹스크래퍼 만들기 - 4 1. 회사 이름 추출하기 - 앞선 포스팅에서 설명했던 동일한 방식으로 HTML의 구조를 분석하여 이번에는 회사의 이름을 추출해 보자. - HTML을 분석해보면 이전에 이미 알고있는 div태그에 company라는 span에 String으로 회사 이름이 들어가 있는 것을 볼 수 있다. 하지만 가끔 몇몇 회사들은 a태그로 회사이름에 링크를 걸어놓는 경우가 있다. 우리는 이 두가지 경우 모두를 생각하여 코드를 만들어 보자. (if문을 사용한다.) - 결과는 아래와 같이 잘 출력된다. - 이 결과의 문제점은 결과간의 공백이 존재한다는 것이다. 이 공백을 없애주기 위해 우리는 strip() 함수를 사용할 수 있다. - 결과는 아래와 같이 공백없이 깔끔하게 나오는 것을 확인할 수 있다. 2. 코드정리 - 지금까지 만.. 2020. 8. 4. 파이썬으로 웹스크래퍼 만들기 - 1 1. Web Scrapper의 개념 - 웹 스크래퍼는 인터넷 웹사이트에서 데이터를 추출하는 기술이다. 웹스크래퍼가 무엇인지 공부를 하면서 그동안 내가 사용하던 다양한 기술들이 웹 스크래핑에 기반하였다는 것을 이제서야 알게 되었다. 예를 들어, 어떤 기사의 링크를 복사하여 SNS에 또는 메신저에 올리면 링크와 함께 자동으로 그 기사의 preview가 보여진다. 웹 스크래핑 기술을 이용해 해당 기사의 링크에 있는 대표 사진 등의 정보를 가져와 보여주는 것이다. 이것이 web scrapper이다. - 웹 스크래핑 기술을 사용해 우리는 다양한 것들을 만들 수 있다. 특정 물건의 가격을 몇몇 웹사이트에서 수집하여 이를 데이터하는 등 요즘 우리가 말하는 빅데이터의 기본이 되는 데이터를 수집하는 기본적인 방법중의 하.. 2020. 7. 31. 이전 1 다음