Python Library/웹 크롤링 9

[웹 크롤링 - 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..

[웹 크롤링 - Python] Requests 라이브러리

1. Requests란? Requests란 Python용 HTTP 라이브러리이다. Python에서 특정 웹사이트에 HTTP 요청을 보내는 모듈이라고 생각하면 될 것 같다. 좀 더 쉽게 말해서 특정 웹사이트에 HTTP 요청을 보내 HTML 문서를 받아올 수 있는 라이브러리이다. 근데 정확히 말하면 얘가 가져오는 HTML 문서는 문서가 아닌 그냥 단순한 String이고, 뒤에서 배우는 BeautifulSoup에 의해 살아있는 HTML 문서로 바뀌게 된다. 2. 설치 터미널 창에 "pip install requests" 를 치면 알아서 설치가 된다. 근데 나는 파이참을 쓰기도 했고, 이때는 pip를 잘 몰라서 그냥 File -> Setting -> Project:Python -> Python Interpret..