분류 전체보기 461

[Jupyter Notebook] 주피터 노트북 또 다른 사용법

이번에는 나도코딩님이 유튜브에 강의하신 것을 거의 따라해보는 시간을 가지겠습니다. 아직 제가 matplotlib와 pandas를 잘 사용하지 못해서 그냥 따라하는 수준에 그칠 것 같네요. 주피터 노트북을 사용한다는 것에 중점을 두도록 하겠습니다. 마크다운 모드에서 '---', 하이픈 세 개면 구분선이 됩니다. 그리고 그냥 하이픈을 쓰고 글을 쓰면 순서가 없는 목록이 됩니다 그리고 matplotlib와 numpy를 사용해서 어떤 그래프를 쓸 때, print나 show()할 필요 없이 그냥 실행만 시키면 됩니다. 이래서 데이터나 그래프를 볼 때, 주피터 주피터 하는가 봅니다.. 이를 실행시키면, 이렇게 됩니다. 그리고, 판다스를 이용해서 테이블을 그릴 때도 아주 유용합니다. 주피터를 사용하면 그래프나 테이블..

[Jupyter Notebook] 주피터 노트북 설치 (window)

22.11.24 수정 및 추가 아나콘다(Linux) 2022.11.24 - [인공지능 (Artificial Intelligence, AI)/Anaconda] - [Anaconda] Anaconda 설치 (Linux) [Anaconda] Anaconda 설치 (Linux) 1. Anaconda란? 아나콘다(Anaconda)는 패키지 관리와 배포를 단순히 할 목적으로 과학 계산을 위한 파이썬과 R 프로그래밍 언어의 배포판입니다. 패키지 버전들은 패키지 관리 시스템 conda를 통해 관리 hi-guten-tag.tistory.com 주피터 노트북 사용법 2022.11.24 - [인공지능 (Artificial Intelligence, AI)/Anaconda] - [Jupyter Notebook] 주피터 노트북 ..

[웹 크롤링 - Python] BeautifulSoup(Requests, Selenium)의 응용(2)

이번에는 오늘의 정보를 가져와서 text파일에 저장하는 함수를 만들었습니다. 날씨와 헤드라인 뉴스, 그리고 IT뉴스와 헤커스의 오늘의 영어 회화를 가져와서 today.txt파일에 저장하는 함수입니다. 아 그리고 Requests와 Selenium을 쓸 때도 있고, 안 쓸 때도 있습니다. 아마 동시에 쓸 일은 아직까지는 없네요. 일단 둘 다 공부해야해서 한 파트에 한 가지만 쓰고 있습니다. find와 select를 혼용해서 쓴 이유는 공부하기 위해서입니다. 한 가지만 쓰면 다른 한 가지는 까먹기 때문에.. import requests from bs4 import BeautifulSoup import sys # 기본 출력을 today.txt로 바꿈 sys.stdout = open('today.txt', 'w'..

[웹 크롤링 - Python] BeautifulSoup(Requests, Selenium)의 응용(1)

이번 시간에는 네이버 부동산의 정보를 csv에 저장하는 프로그램을 만들어 보았습니다. 아파트 이름을 적으면 알아서 웹 크롤링을 해와서 csv파일에 저장하는 방식입니다. 하지만 이 코드의 문제점은 최대 19개밖에 못 가져온다는 것인데, 이는 네이버 부동산의 판매 정보칸이 있는데, 여기서 스크롤을 내려야 GET으로 추가 판매 정보를 가져오더라구요 .. 그래서 추가 판매 정보를 가져오는 녀석의 헤더와 쿠키, auth 정보를 따서 재요청하려고 했는데, 이건 제가 아직 지식을 덜 쌓아서 못 했습니다... 그래서 아래의 코드는 사이트에 들어가면 바로 나와있는 정보만 가져오는 반쪽짜리 코드라 할 수 있네요 ㅠㅠ from bs4 import BeautifulSoup from selenium import webdrive..

[웹 크롤링 - Python] Selenium 사용법

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.02.01 - [Python Library/웹 크롤링] - [웹 크롤링 - Python] Selenium 프레임워크 및 웹 드라이버 [웹 크롤링 - Python] Selenium 프레임워크 및 웹 드라이버 1. Selenium 이란? 만약 우리가 웹 크롤링을 하는 과정에서 로그인이 필요한 경우에는 어떻게 해야할까? 일일이 우리가 로그인을 하고 안에 들어간 다음에 url 주소를 다시 줘야할까?? 혹은 해당 웹 hi-guten-tag.tistory.com 1. find를 이용해 element 찾기(find_element), click(), get_attribute() from selenium import webdriver url = "http://naver..

[웹 크롤링 - Python] Selenium 프레임워크 및 웹 드라이버

1. Selenium 이란? 만약 우리가 웹 크롤링을 하는 과정에서 로그인이 필요한 경우에는 어떻게 해야할까? 일일이 우리가 로그인을 하고 안에 들어간 다음에 url 주소를 다시 줘야할까?? 혹은 해당 웹사이트가 프로그램을 통한 접근을 막은 경우에는 어떻게 될까?? User-Agent를 바꾸면 해결할 수는 있지만, 인생이 그렇듯 하나의 방법으로는 불가능한게 너무 많다. 그렇다면 어떤 방법을 통해서 할 수 있을까? requests로는 한계가 있어보인다. 방법은 Selenium이다. Selenium은 마치 우리가 웹 사이트를 이용하는 것처럼 홈페이지를 제어할 수 있다. 사실 Selenium은 위와 같은 경우 때문에 생겨난 프레임워크가 아니다. 크롤링을 위한 프레임워크가 아니란 말이다. 사실 Selenium은..

[웹 크롤링 - Python] 응용 및 홈페이지 url 변경 크롤링

1. 간단한 응용 이번 시간에는 지금까지 배운 내용을 토대로 네이버 웹툰을 가져와보겠다. 가져올 네이버 웹툰은 김세훈 작가님의 '열렙전사'를 가져와보도록 하겠다. 가져올 내용은 제목과 링크, 그리고 별점을 가져오고 가져온 이후에는 평점의 평균을 내보도록 하겠다. import requests from bs4 import BeautifulSoup # url은 네이버 웹툰의 열렙전사이다. url = "https://comic.naver.com/webtoon/list?titleId=670152&weekday=sun" head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome..

[웹 크롤링 - Python] BeautifulSoup 사용법

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.01.28 - [Python Library/웹 크롤링] - [웹 크롤링 - Python] BeautifulSoup4 라이브러리, lxml 모듈 [웹 크롤링 - Python] BeautifulSoup4 라이브러리, lxml 모듈 1. BeautifulSoup과 lxml이란? BeautifulSoup이란 스크래핑을 하기위해 사용하는 패키지이고, lxml은 구문을 분석하기 위한 파서이다. 즉, BeautifulSoup은 response.text를 통해 가져온 HTML 문서를 탐색해서 원하는 hi-guten-tag.tistory.com 1. '.' 이용 '.'을 이용해서 보는 법이 있다. 예를 들어 앞에서 했던 네이버 웹툰을 생각해보자. import reque..

[웹 크롤링 - Python] BeautifulSoup4 라이브러리, lxml 모듈

1. BeautifulSoup과 lxml이란? BeautifulSoup이란 스크래핑을 하기위해 사용하는 패키지이고, lxml은 구문을 분석하기 위한 parser이다. 즉, BeautifulSoup은 response.text를 통해 가져온 HTML 문서를 탐색해서 원하는 부분을 뽑아내는 그런 역할을 하는 라이브러리이다. 또한, response.text로 가져온 HTML문서는 단순히 String에 지나지 않으니, lxml을 통하여 의미있는 HTML문서로 변환하는 것이다. 결론적으로, response.text로 가져온 String은 lxml이라는 모듈의 해석에 의하여 의미있는 HTML 문서로 변환되고, 이렇게 변환된 HTML문서는 BeautifulSoup에 의해서 원하는 부분을 탐색할 수 있게 된다. 그래서 ..

[웹 크롤링 - Python] User-Agent

1. User-Agent란? 우리가 보통 컴퓨터로 들어가는 사이트의 화면과 휴대폰으로 들어가는 사이트의 화면은 다르다. pc에서의 네이버 화면과, 휴대폰에서의 네이버 화면이 다르다. 이는 우리가 웹사이트에 접속할 때, 우리의 정보를 가지고 웹사이트에서 스마트폰인지 데스크탑인지 판단해서 보여주는 그런 정보를 담고 있다. 더보기 더보기 더보기 소프트웨어 에이전트가 네트워크 프로토콜 안에서 동작할 때, 문자적 식별 문자열을 피어(peer)에 제출함으로써 종종 자기 자신과 애플리케이션 유형, 운영 체제, 소프트웨어 업체, 소프트웨어 리비전을 식별한다. HTTP,[2] SIP,[1], NNTP[3] 프로토콜에서 이러한 식별 정보는 User-Agent라는 헤더 필드를 통해 전달된다. 웹 크롤러와 같은 봇은 종종 U..