# WebCrawling

45개의 포스트
post-thumbnail

과거 대통령 연설문 비교(노무현 대통령 vs 이명박 대통령)

대학원 재직 중 수업 중간 과제 중 WebCrawling과 함께 Text Mining을 수행하는 과제결과를 게재하고자 한다. 해당 내용은 정치적 견해는 없으며, 단순 분석을 목적으로 하였음을 알려드립니다. > 노무현 대통령 vs 이명박 대통령의 연설 비교. Crawling & Text Mining 알고싶다면 다운받아서 사용해보세요. 노무현 대통령 vs 이명박 대통령 필요 Library C:\Anaconda3\envs\work\lib\site-packages\gensim\utils.py:840: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial") C:\Anaconda3\envs\work\lib\site-packages\

2023년 7월 27일
·
0개의 댓글
·
post-thumbnail

Scrapy

옛날 코드라 작동하지 않음, 이해도 부족으로 인해 코드 수정이 불가하여 참고용으로만 사용 scrapy 웹사이트에서 데이터 수집을 하기위한 오픈소스 파이썬 프레임워크 멀티스레딩으로 데이터 수집 gmarket 상품데이터 수집 Scrapy 설치 1. 스크레피 프로젝트 생성 프로젝트 구조 확인 items : 데이터의 모양 정의 middewares : 수집할때 header 정보와 같은 내용을 설정 pipelines : 데이터를 수집한 후에 코드를 실행 settings : robots.txt 규칙, 크롤링 시간 텀등을 설정 spiders : 크롤링 절차를 정의 2. xpath 찾기 : 링크, 상세 페이지

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

XPath

xpath html element를 선택하는 방법 scrapy에서는 기본적으로 xpath를 사용 scrapy 설치 라이브러리 임포트 response 가져오기 XPath 추출 XPath 경로는 크롬 개발자모드에서 원하는 요소 우클릭 --> Copy --> Copy XPath //*[@id="nxrightrelated_keywords"]/div/div[2]/ul/li[1]/a/div 이렇게 있을때 > // : 최상위 엘리먼트 * : 모든 하위 엘리먼트 : css selector의 한칸띄우기와 같다. [@id="value"] : 속성값 선택 / : 한단계 하위 엘리먼트 : css selector의 >와 같다. [n] : nth-child(n) 텍스트 요소 선택 데이터 추출 > ### 출력 >>['삼

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

Selenium으로 Text data 크롤링

TED 사이트 브라우저를 실행하여 테드 사이트 열기 CSS Selector를 이용하여 HTML 태그와 태그 사이의 text 데이터 가져오기 제목 데이터 가져오기 가장 처음 텍스트 데이터 가져오기 전체 제목 데이터 가져오기 셀렉트 박스를 선택후 데이터 가져오기 이벤트 발생 기능(값 입력, 클릭 이벤트등)은 화면에 해당 엘리먼트가 보여야 합니다. 한국어 선택 전체 제목 데이터 가져오기 링크 데이터 크롤링 (속성(attribute)값 가져오는 방법) 브라우저 종료 Headless 브라우저를 화면에 띄우지 않고 메모리상에서만 올려서 크롤링하는 방법 window가 지원되지 않는 환경에서 사용이 가능 chrome

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

Selenium으로 브라우저 컨트롤

selenium Selenium 자동화를 목적으로 만들어진 다양한 브라우저와 언어를 지원하는 라이브러리 크롬 브라우저 설치 크롬 브라우저 드라이버 다운로드 (크롬 브라우저와 같은 버전) 다운로드한 드라이버 압축 해제 chromedriver, chromedriver.exe 생성 windows : 주피터 노트북 파일과 동일한 디렉토리에 chromedriver.exe 파일 업로드 mac : sudo cp ~/Download/chromedirver /usr/local/bin Selenium 설치 라이브러리 임포트 브라우저 열기 페이지 이동 브라우저 사이즈 조절 브라우저 스크롤 조절 alert 다루기 경고창

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

G마켓 베스트 상품 이미지 수집

라이브러리 임포트 1. URL 찾기 2. request > response : str(html) 3. bs > DataFrame 4_1. download image 폴더가 생성됐는지 확인한다. 4_2. download image 이미지 파일 열기 test.png는 코드 확인용으로 넣어둔 이미지 파일이다. G마켓 이미지는 경로를 직접 보고 입력하거나 glob을 사용하면 된다. datas 폴더내의 파일들 확인 이미지 파일 보기 5개의 아이템 이미지 다운로드 다운로드 됐는지 확인

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

네이버 연관 검색어 수집

네이버 연관 검색어 수집 정적(static) 웹페이지 데이터 수집 BeautifulSoup을 이용하여 HTML 문자열 데이터 parsing 라이브러리 임포트 1. 웹페이지 분석 : URL 2. request(URL) > response : str(html) 3. str(html) > bs object html 문자열을 beautifulSoup Object로 변환한다. 4. bs object > .select(css-selector), .select_one(css-selector) > str(text) bs object에서 css-selector를 이용해 원하는 태그안의 내용을 가져온다. |Tag|선택방법| |---|---| |element Tag (, ...)|soup.select('p')| |id값|

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

CSS_Selector

CSS Selector CSS 셀렉터는 CSS 스타일을 적용시킬 HTML 엘리먼트를 찾기 위한 방법 입니다. 1. Element Selector 엘리먼트를 이용하여 선택할때 사용 css selector로 div를 사용하면 가장 위에 있는 dss1이 선택 2. ID Selector 아이디를 이용하여 선택할때 사용 아이디를 셀렉할때는 #(아이디 이름)으로 선택 css selector로 #ds2를 사용하면 dss2가 선택 여러개를 셀렉할때는 ,로 구분 css selector로 #ds2, #ds3를 사용하면 dss2와 dss3가 선택 3. Class Selector 클래스를 이용하여 선택할때 사용 클래스를 셀렉할때는 .(클래스 이름)으로 선택 엘리멘트를 그룹핑하여 스타일을 적용할때 사용 css selector로 .ds2를 사용하면 dss2, dss3가

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

Zigbang 원룸 매물 데이터 수집

라이브러리 임포트 절차 동이름으로 위도 경도 구하기 위도 경도로 geohash 알아내기 geohash로 매물 아이디 가져오기 매물 아이디로 매물 정보 가져오기 1. 동이름으로 위도 경도 구하기 2. 위도 경도로 geohash 알아내기 3. geohash로 매물 아이디 가져오기 파이썬에서는 한줄이 너무 길어질 때 \ (백슬래시)로 끊을 수가 있다 주의할 점은 백슬래시 뒤에 아무 문자도 없어야 한다는 것, 공백도 안됨 4. 매물 아이디로 매물 정보 가져오기 필요한 컬럼만 필터링 주소에 망원동이 있는 데이터만 필터링

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

Naver Rest API 사용

Naver Rest API 파파고 번역 api 통합검색어 트렌드 api 라이브러리 임포트 0. request token 얻기 NAVERDevelopers Request Token 얻기 : 애플리케이션등록 -> app_key 획득 app_key를 이용해서 데이터 가져오기 1. 파파고 번역 api 파파고 번역 문서 사용법 함수로 만들어준다 2. 통합검색어 트렌드 api 서비스 내 애

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

Daum 주가정보 수집

라이브러리 임포트 1. 웹서비스 분석 : url python에서의 접근을 차단한다면 이렇게 접근 정보를 브라우저로 바꿔서 줄 수 있음 User-agent확인 2. JSON --> DataFrame 3. 데이터프레임 정리 및 확인

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

네이버 주가정보 수집

라이브러리 임포트 1. 웹서비스 분석 : url pc 웹페이지가 복잡하면 mobile 웹페이지에서 수집 2. 서버에 데이터 요청 : request(url) > response : json(str) response의 status code가 200이 나오는지 확인 403이나 500이 나오면 request가 잘못되거나 web server에서 수집이 안되도록 설정이 된것임 header 설정 또는 selenium 사용 200이 나오더라도 response 안에 있는 내용을 확인 > 확인하는 방법 : response.text 3. 서버에서 받은 데이터 파싱(데이터 형태를 변경) : json(str) > list, dict > DataFrame 4. 함수로 만들기 방금까지 짠 크롤링 코드를 함수로 만들어준다. Docstring

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

Python 웹크롤링 개념

Web Crawing 웹 페이지에서 데이터를 수집하는 방법에 대해서 학습 웹크롤링 방법 웹페이지의 종류 정적인 페이지 : web browser에 화면이 한번 뜨면 이벤트에 의한 화면의 변경이 없는 페이지 동적인 페이지 : web browser에 화면이 뜨고 이벤트가 발생하면 서버에서 데이터를 가져와 화면을 변경하는 페이지 requests 이용 받아오는 문자열에 따라 두가지 방법으로 구분 json 문자열로 받아서 파싱하는 방법 : 주로 동적 페이지 크롤링할때 사용 html 문자열로 받아서 파싱하는 방법 : 주로 정적 페이지 크롤링할때 사용 selenium 이용 browser를 직접 열어서 데이터를 받는 방법 크롤링 방법에 따른 속도 requests json > requests html > selenium Crwaling Naver St

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

논문 주제 경향 살펴보기

연구자들에게 있어 최신 연구 동향을 파악하는 것은 중요한 일이다. 인기있는 분야의 주제는 지속적으로 바뀌어왔으며, 단편적인 논문의 양만으로는 최신 트렌드를 따라가기에 쉽지 않다. 따라서 천문학 분야에서, 최근 10년간 연구 동향이 어떻게 바뀌어왔나를 파악할 수 있는 데이터 분석을 진행했다. 많은 데이터 수집을 위해 많은 연구자들이 자신의 논문을 올리는 arxiv.org를 사용하였으며, 2010년부터 2023년까지 연단위의 논문 갯수를 분석하였다.

2023년 3월 19일
·
0개의 댓글
·
post-thumbnail

[CAUnotify] 구조 설명

Link: https://caunotify.me CAUnotify.me 는 내가 처음으로 개발해본 웹 프로젝트이다. 중앙대학교 서울캠퍼스 교내 48개의 게시판을 주기적으로(30분에 한번) 크롤링하여 과거 데이터와 대조해 변화가 있는지 알아내고, 변화가 있었다면 해당 게시판을 구독한 유저들만을 골라내어 이메일을 전송하는 서비스이다. 대략적인 구조는 다음과 같다. 유저가 CAUnotify.me 웹사이트를 통해 자신의 이름, 이메일 그리고 구독할 게시판을 html form에 입력하여 submit한다(HTTP POST). 해당 정보를 받은 서버는 여기에 key value로 사용할 id 라는 값을 부여한 후 DB에 저장한다. 서버는 주기적으로 교내 공지 게시판을 크롤링하여 기존 목록과 대조한다

2023년 2월 13일
·
0개의 댓글
·

Python을 이용한 웹크롤링 - (3)

이미지를 웹크롤링한 후에 크기를 조정하는 방법에 대해서 작성해보았습니다. 1. 이미지 불러오기 2. 다른 이름으로 저장하기

2023년 1월 23일
·
0개의 댓글
·
post-thumbnail

python web crawling 1

main declare function declare youtube에서 document.body.scrollHeight youtube에서 document.body.scrollHeight 를 사용했지만 작동되지 않았다. 이를 return document.documentElement.scrollHeight으로 바꾸면 내려가지기는 하지만, 페이지 최하단으로 내려가지는 않는다. while문을 통한 스크롤 반복 또한 먹히지 않아 유튜브 크롤링은 일단 중지했다. 내일의 내가 할 것 ML과 DL을 위해 데이터 크롤링에 익

2022년 8월 25일
·
0개의 댓글
·

BeautifulSoup, Selenium (AI 빅데이터 교육_3주차)

3주차부터는 파이썬과 웹 기초를 마무리하고 데이터 수집을 위한 웹 크롤링에 대해 학습했다. 1. 사전 학습   가. 용어 정리 들어가기에 앞서, 아직 익숙하지 않은 용어들에 대해 먼저 살펴보면 > ### 웹 크롤러 (Web crawler) " A Web crawler, sometimes called a spider or spiderbot and often shortened to crawler, is an Internet bot that systematically browses the World Wide Web and that is typically operated by search engines for the purpose of Web indexing (web spidering)." (출처: 위키피디아 Wikipedia) 크롤러는 웹 인덱싱(웹상의 데이터를 찾아보기 쉽게 일정한 순서에 따라 목록으로 나열하는 것)을 위해 WWW를 체계적

2022년 8월 10일
·
0개의 댓글
·

Python을 이용한 웹크롤링 - (2)

기본 환경 설정이 끝난 후에 가장 간단한 방법으로 웹크롤링을 직접 해보도록 하겠습니다. 1. 가상 브라우저 열기 2. 가상 브라우저에서 크롤링하고자 하는 페이지로 이동 Ex) 네이버 웹툰(일상) 페이지 선택 3. Copy full Xpath로 태그 추출 F12 버튼(개발자 도구)을 통해 크롤링하고자 하는 태그를 마우스로 가리키고, 해당 부분의 태그를 Copy full Xpath 실행하면서 추출할 부분의 규칙을 파악(실행 X) 4. 주요 사용 함수 해당 부분도 실행 X 5. 데이터프레임 생성 크롤링한 데이터를 담을 데이터프레임을 생성하고, 컬럼명을 지정 6. 개별 데이터 추출 및 로직 구성 초안 설계 어떤 데이터를 추출할 것이고, 겹치지 않는 주소를 파악 7. 로직 완성 및 추출 진행 로직을 완성하여 코드를 구성하고, 동작을

2022년 7월 20일
·
0개의 댓글
·
post-thumbnail

모바일 알람 - Slack 활용

마감예정과제 마감 x시간 전에 알람주기 replace() 사용해 22. 6. 3 23:59 로 불러와지는 마감기한을 datetime()에 넣을 수 있게 22,6,3,23,59 로 변경시킴 이후, datetime(Y,m,d,H,M,S,M.S(마이크로세컨드))로 보내줘야 하기 때문에 split()을 사용해['22','6','3','23','59']로 또 하나씩 분류하는 리스트를 만듦 (slack에 전송하는 for문에서 수행될 예정) 마감 x시간 전에 알람. 단, 중복되지 않고 한 번만 보낸다 1) 마감 x시간 전에 해당하는 알람은 단 한 번만 줄 것임 2) 코드는 x분 간격으로 반복 실행할 것임 (계속해서 업데이트 시킬 것이기 때문) 3) 과제 마감시간이 지나 과제가 사라질 경우 DA_deadline 리스트가 변경될 위험이 있음 변수에 1을 넣어 1일 경우, 0일 경우로 나눠서 중복을 방지하려 했으나 3) 조건이 방해함

2022년 5월 31일
·
0개의 댓글
·