728x90
반응형
- [ 언어·프레임워크/Python ][Python] selenium 다중 URL 크롤링 중 누락 문제2023-12-14 10:17:021. selenium 다중 URL 크롤링 중 누락 문제 어떤 사이트에 100개의 항목이 있는 10개의 페이지가 있다고 생각해 보자! 각 페이지는 URL이 다르지만 구조는 같다. 따라서 하나의 크롤링 코드로 10개에 대응이 가능하다. 이 얼마나 간단한 문제인가? 그냥 반복문을 돌리면 끝이다! 하지만 실제는 그렇게 간단하지 않았다. 첫 번째 시도한 페이지에서는 100개 항목을 잘 긁어 왔다. 하지만 그다음 페이지들은 줄줄이 19개를 넘지 못했다. 2. 일부 누락 문제 webdriver를 페이지마다 열고 닫고를 반복하는 방식을 시도한 결과 마지막 페이지를 제외하고는 100개의 항목을 모두 가져왔다. 마지막 페이지의 경우 79개만 긁어오고 있었다. 해당 페이지를 좀 더 살펴보니 렌더링 할 때 서버로부터 데이터를..
- [ 프로젝트/[개인] Web Crawling E-Mail Service ][개인] 워크넷 맞춤 구직 정보 이메일로 받기 #3 | 정규식 적용2022-04-20 15:39:43| 정규식 적용 크롤링한 데이터의 "학력"에 불필요한 "\n\t\t\t\t\t\t\t\t\t\t"가 포함되어 있어서 replace()로 제거하였다. #2에서는 "\n\t\t\t\t\t\t\t\t\t\t"를 replace()의 파라미터로 복붙 하여 해결했는데, 이번에는 정규식을 적용하였다. 정규식에서 () 안의 문자열은 한 덩어리로 본다. +는 앞의 표현식이 1회 이상, *는 0회 이상 반복되는 부분과 대응한다. /(\n)*(\t)*/ 위와 같이 *만 사용하여 시도하였을 때는 [그림 1]과 같은 결과가 나왔다. 그래서 +, *를 각각 사용하여 문제를 해결할 수 있었다. /(\n)+(\t)*/ 전체 코드 중 정규식을 적용한 크롤링, 파싱 처리 부분은 다음과 같다. // 2_crawling_worknet.js..
- [ 프로젝트/[개인] Web Crawling E-Mail Service ][개인] 워크넷 맞춤 구직 정보 이메일로 받기 #2 | dotenv, nodemailer를 추가해 크롤링 정보를 개인 이메일로 발송2022-04-15 16:24:53| 개발 동기 매번 워크넷에 들어가 비슷한 검색어를 입력하는 것이 번거로웠다. 스케줄링까지 적용해 매일 정해진 시간에 자동으로 이메일 구직 정보를 받아보는 프로그램을 만들고자 한다. | 개발 목표 워크넷 정보를 크롤링한다. 크롤링된 정보를 개인 메일로 발송한다. 크롤링된 정보를 매일 지정한 시간에 개인 메일로 발송한다. 이상의 기능에 GUI를 적용한다. | 사용 기술 이번에 사용한 모듈은 dotenv, nodemailer이다. dotenv는 깃허브에 이 프로젝트를 커밋, 푸시하더라도 구글로부터 받은 메일 키는 제외되도록 하기 위해 사용하였다. nodemailer는 크롤링된 정보를 개인 이메일로 발송하기 위해 사용하였다. ※ node.js에서 진행한 이번 프로젝트에서 현재까지 사용한 모듈은 axios, c..
- [ 프로젝트/[개인] Web Crawling E-Mail Service ][개인] 워크넷 맞춤 구직 정보 이메일로 받기 #1 | axios, cheerio 이용한 웹 크롤링2022-04-14 23:29:00| 개발 동기 및 내용 매번 워크넷에 들어가 비슷한 검색어를 입력하는 것이 번거로웠다. 스케줄링까지 적용해 매일 정해진 시간에 자동으로 이메일 구직 정보를 받아보는 프로그램을 만들고자 한다. | 사용 기술 node.js와 axios, cheerio 모듈을 사용했다. | 진행 현황 현재까지 구현한 기능은 "검색어(keyword), 검색 결과 수(resultCnt, 최대 검색 건수 기본값 10), 지역코드(regionNumber)"를 매개변수로 주면 "채용공고명, 회사명, 채용 공고 상세 페이지 url"을 크롤링하는 것이다. | 다음 단계 크롤링된 정보를 gmail로 보내는 기능을 구현할 것이다. | 작성 코드 const axios = require("axios"); const cheerio = requir..
728x90
반응형