🏡집이 있다고 할 때,
1. HTML : 뼈대
2. CSS : 인테리어, 예쁘게 하는 것
3. JS : 집을 살아있게 하는 것
<html></html>
: <여는 태그><닫는태그><html/>
: 한 줄로 표현 가능<html>
<head></head>
<body></body>
</html>
<head></head>
: 홈페이지의 제목을 정의 또는 HTML문서작업을 위해 선행하는 작업을 하는 부분<body></body>
: 웹페이지의 본문을 정의ex)
<html>
<head>
<title>나도코딩 홈페이지</title>
</head>
<body>
<h1>안녕하세요, 나도코딩입니다.</h1>
</body>
</html>
*저장(Ctrl+s)후 실행
홈페이지 생성😆
<html>
<head>
<meta charset="utf-8">
<title>나도코딩 홈페이지</title>
</head>
<body>
<input type="text" value="아이디를 입력하세요">
<input type="password">
<input type="button" value="로그인">
<a href="http://google.com">구글로 이동하기</a>
</body>
</html>
따란🙂
cf) html을 더 배우고 싶다면, w3school 검색
위의 예에서 <input type="button" value="로그인">
이 값을 가져오고 싶다
👉 경로를 알아야한다 👉 이 때, 경로를 의미하는 것이 XPath
ex) 1학년 1반의 이지은 학생 2명이라 누가 교무실에 부르면 누가 가야할지 모름
/학교/학년/반/학생[2]
이때, 학번을 추가하여 XPath를 줄일 수 있다
//*[@학번"1-1-5"]
✔️ 만약 이런 경우, 매우 유용
\html\body\div\div\div\div\div\div\span\a...
html 한참 밑에 어떤 값이 login인 것을 찾는 전체 경로 대신
\\*[@id="login"]
id가 login인 것을 모든 문서에서 찾아 줌
(여기서 '*' 의 의미: 학교, 학년, 학생 상관없이 모든 태그에서 찾음)
: html문서정보를 가져오기 위해 쓸 수 있는 라이브러리
request.get()
request.post()
request.put()
request.delete()
1️⃣
res.status_code
: 정보 잘 받아왔는지, 페이지 접속 권한이 없는 지등의 문제가 여부를 파악하기 위한 코드 → 응답코드가 200일 경우, 정상⭕️
2️⃣
res.raise_for_status()
: 오류 발생 시, 오류를 내뱉고, 프로그램을 끝냄
→ 밑의 예에서 오류가 발생 시,print
가 실행되지 않는다.
⇒ 아래 사진과 같이 3코드를 세트처럼 사용
response = requests.get("url")
로 API 요청 후, 3가지 방식을 응답 전문을 읽어올 수 있다.
1️⃣
responese.content
: 바이러니 원문
2️⃣
responese.text
: UTF-8로 인코딩 된 문자열
3️⃣
responses.json()
: 응답 데이터 JSON 포멧 👉 딕셔너리 객체
Chrome에 user agent string 검색
👉 복사하여, 아래 "User=Agnet":
코드 뒤에 삽입
헤더 옵션 추가하여 응답전문 받기: requests.get(url, headers = 헤더)
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("url")
그 다음 단계 오류 발생!!!!!!
구글 무비에서 할인하고 있는 정보만 가져 오려 함
👉 결과 값으로 0
이 도출
헤더 정보입력, 언어설정 변경 👉 결과 값으로 10
이 도출(되어야 하는데 나는 안 됨 케켘,,)
💬 BeautifulSoup import과정에서 에러 발생
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
→ 해결 방법 : lxml 설치(pip install lxml)
@참고: https://www.daleseo.com/python-requests/
@참고: https://blog.daum.net/sualchi/13721870