일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- gitlab ci
- argocd
- Kubernetes
- Prometheus
- CD
- docker
- ECR
- helm
- CI/CD
- gitlab cd
- DevOps
- 크롤링
- GitLab
- 스크레이핑
- scraping
- 웹 취약점
- Monitoring
- opentelemetry
- Jenkins
- Crawling
- 모의해킹
- eks
- sonarqube
- Grafana
- linkerd
- Resource
- Service Mesh
- CI
- 웹 해킹
- deploy
- Today
- Total
목록Coding (9)
ㅡ.ㅡ
세션 아래 코드는 세션을 사용하여 페이지를 요청할 때 쿠키를 따로 전송하지 않고 세션에 저장된 쿠키를 사용하여 페이지를 요청하는 코드이다. import requests # 세션 생성 session = requests.Session() # 폼에 데이터 입력 + 세션 사용하여 요청하기 params = {"username":"ekwkqk12", "password":"password"} req_s = session.post("http://pythonscraping.com/pages/cookies/welcome.php", data=params) # 세션에 저장된 쿠키 데이터 확인 print("[+] 쿠키에 저장된 데이터 ") print(req_s.cookies.get_dict()) # 쿠키 값이 포함된 세션을 사..
쿠키 사용 흐름 아래 그림은 웹 페이지에 로그인시 입력된 데이터를 쿠키에 저장하여 프로필 페이지에 사용자의 정보를 출력하는 페이지에 흐름을 보여준다. ▼ ▼ ▼ 쿠키 사용 코드 아래 코드는 이전에 쿠키를 사용하여 사용자 정보를 출력하는 것을 코드로 작성한 것이다. 로그인 데이터를 지정하여 다음 페이지를 요청하고 쿠키에 저장된 데이터를 확인 후 프로파일 페이지를 쿠키와 함께 요청한다. import requests # 폼에 데이터 입력하여 페이지 요청하기 params = { "username": "ekwkqk12", "password": "password" } req = requests.post("http://pythonscraping.com/pages/cookies/welcome.php", data=par..
폼 아래 그림을 보면 실제 웹사이트 HTML 코드로 form태그의 action속성 값은 입력된 값이 실제로 처리될 페이지를 의미한다. Input태그에 Name속성의 값을 활용하여 데이터를 추가하여 전송 할 수 있다. 폼 사용 코드 아래 코드는 requests모듈의 post함수를 사용하여 웹 페이지의 폼에 데이터를 추가하여 요청하는 코드이다. import requests # 폼에 데이터 입력하여 전송하기 params = { "firstname": "김", "lastname": "현우" } req = requests.post("http://pythonscraping.com/pages/files/processing.php", data=params) print("[+] 응답 상태 : ", req) print("..
Requests 라이브러리란? urllib과 같이 HTTP 요청을 처리하나 좀더 세부적인(헤더, 쿠키, 폼, 세션 등) HTTP 요청처리를 하는 라이브러리이다. 요청과 응답 requests모듈을 사용하여 웹페이지에 요청하고 요청한 응답에 대한 데이터 아래 그림과 같이 볼 수 있다. import requests # 요청 하기 r = requests.get("https://www.google.com") print("[+] 요청 결과 : ", r) # 응답 HTTP 헤더 추출 r2 = r.headers print("[+] 응답 헤더 : ", r2) # 인코딩 추출 r3 = r.encoding print("[+] 인코딩 : ", r3) # str 자료형으로 디코딩된 응답 본문 추출 r4 = r.text prin..
※ DB 파일로 데이터 저장하기 sqlite3모듈을 사용하여 책 목록 페이지에서 책에 이름과 상세정보가 담긴 링크를 추출하여 DB파일에 저장하는 코드이다. 코드에 사용된 중요 함수는 아래 표와 같다. from urllib.request import urlopen import re, sqlite3 from html import unescape # 웹 페이지 요청 req = urlopen("http://www.hanbit.co.kr/store/books/full_book_list.html") encoding = req.info().get_content_charset(failobj="utf-8") html = req.read().decode(encoding) # DB 설정 conn = sqlite3.conne..
※ CSV 파일로 데이터 저장하기 json모듈을 사용하여 책 목록 페이지의 책에 이름과 상세정보가 담긴 링크를 추출하여 Json파일로 저장하는 코드이다. 코드에 사용된 중요 함수는 표와 같다. import json,re from urllib.request import urlopen from html import unescape # 웹 페이지 읽어오기 req = urlopen("http://www.hanbit.co.kr/store/books/full_book_list.html") encoding = req.info().get_content_charset(failobj="utf-8") html = req.read().decode(encoding) # 파일 생성 with open("booklist.json",..
CSV 파일로 데이터 저장하기 CSV모듈과 re모듈을 사용하여 한빛 미디어 책 목록 페이지에서 정규표현식을 활용하여 책에 이름과 상세정보가 담긴 링크를 추출하여 CSV파일에 저장하는 코드이다. 해당 코드에 사용된 중요한 함수와 정규표현식에 대한 설명은 아래 표와 같다. from urllib.request import urlopen import re, csv from html import unescape # 웹 페이지 읽어오기 req = urlopen("http://www.hanbit.co.kr/store/books/full_book_list.html") encoding = req.info().get_content_charset(failobj="utf-8") html = req.read().decode(e..
Urlib이란? Urllib 라이브러리는 URL을 조작하여 웹과 관련된 데이터를 쉽게 이용하게 도와주는 라이브러리이다. 웹 페이지 요청하기 아래 코드는 request 모듈을 사용하여 웹 페이지를 요청 후 응답을 받아 응답 에서 데이터를 추출하는 코드이다. 해당 코드에 사용된 중요한 함수는 아래 표와 같다. from urllib.request import urlopen # 웹 페이지 요청 req = urlopen("http://www.hanbit.co.kr/store/books/full_book_list.html") # HTTP 헤더와 인코딩 추출 header = req.info() encoding = req.info().get_content_charset(failobj="utf-8") # 추출한 인코딩으..