본문 바로가기
728x90
반응형

Python13

[웹스크래핑] HTTP Method - Get vs. Post HTTP Method HTTP Method는 크게 Get 방식과 Post 방식이 있다. *HTTP : 웹상에서 클라이언트와 서버 간에 Request(요청)/Response(응답)으로 데이터를 주고 받을 수 있는 프로토콜 Get 서버로 어떠한 리소스로 부터 정보를 얻기(Get)위해 사용하는 방식 Get은 데이터를 읽을 때만 사용하고 데이터를 수정하지 않는다. 어떠한 정보를 누구나 볼 수 있게 url에 적어서 보내는 방식이다. url에 적어서 보낼때 쿼리스트링(QueryString)을 사용한다. Get은 한번 전송할 때, 보낼 수 있는 데이터 양이 정해져있어서 많은 양의 데이터를 보내지 못한다. 쿼리스트링(QueryString) www.example-url.com/resources?name1=value1&n.. 2023. 1. 18.
[웹스크래핑] Beautifulsoup4 활용 1 - 네이버 웹툰 실습1 : 네이버 웹툰 전체 목록(제목) 가져오기 import requests from bs4 import BeautifulSoup url = "https://comic.naver.com/webtoon/weekday" # 접근할 url res = requests.get(url) # 원하는 url의 정보 res.raise_for_status() # 웹페이지의 상태가 정상인지 확인 soup = BeautifulSoup(res.text, "lxml") # 가져온 HTML 문서를 파서를 통해 BeautifulSoup 객체로 만듦 # 네이버 웹툰 전체 목록 가져오기 cartoons = soup.find_all("a", attrs={"class":"title"}) # HTML 문서에서 태그명이 a이고 class 속.. 2023. 1. 17.
[웹스크래핑] Beautifulsoup4 기본 관련 라이브러리 및 패키지 설치 pip install beautifulsoup4 : 스크래핑을 위한 패키지 pip install lxml : 구문을 분석하는 파서(Parser) 실습 : 네이버웹툰 1. url 접근 및 BeautifulSoup 객체 만들기 import requests from bs4 import BeautifulSoup url = "https://comic.naver.com/webtoon/weekday" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") # 가져온 HTML 문서를 파서를 통해 BeautifulSoup 객체로 만듦 1. 네이버웹툰 url의 정보를 requests.get().. 2023. 1. 15.
[웹스크래핑] User Agent - 나를 차단한 웹페이지 접속하기 User Agent 무분별한 크롤링, 스크래핑을 막기 위해서 사람이 직접 웹페이지를 접속한 것이 아니라 로봇이나 프로그램이 접속하는 것을 차단하는 웹페이지들이 있다. 즉, Requests 라이브러리를 사용해서 접근하는 것을 막는 사이트들이 있다. 이러한 사이트들을 크롤링, 스크래핑을 하기 위해서 User Agent를 사용한다. 우리가 로봇이 아니라 사람임을 User Agent를 사용하여 웹페이지에게 알려줄 수 있다. 위의 이미지에서 인간이 조작하는 웹 브라우저 형식을 사용해야 웹페이지가 로봇으로 인식하지 않는다. 나의 User Agent 확인하기 https://www.whatismybrowser.com/detect/what-is-my-user-agent/ What is my user agent? Ever.. 2023. 1. 15.
[웹스크래핑] 정규식(Regular Expression) 정규식(Regular Expression) 특정 단어나 패턴을 표현하는 축약된 형식으로, 규칙이 있는 문자열을 비교, 추출할때 사용한다. 크롤링이나 스크래핑 시에 필요한 정보를 가져올때 유용하게 사용한다. 예를 들어, 주민등록번호 : 95xxxx-xxxxxxx 이메일 주소 : tistory@gmail.com 차량 번호 : 123가 1234 IP 주소 : 192-111.0.1 등이 있다. 1. 정규식 형태를 가진 문자열을 정규식 객체로 컴파일한다. import re p = re.compile("ca.e") 위의 코드는 ca?e와 관련된 문자열을 찾기위한 첫 시작이다. 즉, 정규식을 정의하는 단계이다. ca?e는 care, case, cafe, cave 등이 될 수 있다. 정규식 . : (ca.e) : 하나.. 2023. 1. 15.
[웹스크래핑] Requests 라이브러리 기초 Requests 라이브러리 웹 서버와 데이터를 주고 받기 위해서는 정해진 프로토콜(HTTP)을 사용해야한다. Requests는 웹 서버와 정해진 프로토콜에 따라 데이터를 요청하고 전달 받은 데이터를 관리한다. Requests를 사용하면 프로토콜을 알 필요 없이 정해진 함수만 호출하면 원하는 데이터를 추출할 수 있다. 나중에 배울 셀레니움(Selenium)도 이러한 일련의 일들을 스스로 처리해줘서 내부 동작은 고민할 필요 없다. Requests는 불필요한 데이터를 요청하지 않기 때문에 셀레니움보다 속도가 빠르다. 단점은 세부 내용을 사용자가 컨트롤해야한다. 연습 : Google의 HTML 코드 가져오기 1. 원하는 웹페이지의 정보 가져오기 res = requests.get("http://google.com.. 2023. 1. 14.
728x90
반응형