티스토리 뷰
해당 포스트는 web scraping(web crawling)을 위한 기능 중 하나인 XHR에 관한 포스트입니다.
XMLHttpRequest(XHR) 객체는 서버와 상호작용하기 위하여 사용됩니다.
전체 페이지의 새로고침없이도 URL 로부터 데이터를 받아올 수 있습니다.
즉, 전체 페이지와는 독립적으로(비동기적) 데이터를 주고 받을 수 있다는 의미다.
XMLHttpRequest 는 AJAX(Asynchronos Javascript And XML)프로그래밍에 주로 사용됩니다.
XMLHttpRequest 는 XML 뿐 아니라, 모든 종류의 데이터를 받아오는데 사용할 수 있습니다.
또한 HTTP 이외의 프로토콜도 지원합니다(file 과 ftp 포함).
사용법
XMLHttpRequest를 http를 이용해서 예제를 살펴봅시다.
open이란 메소드를 이용해서 형식, url, 비동기여부(디폴트 : 비동기) 에 원하는 변수를 넣어준다.
XMLHttpRequest.open(method, url[, async[, user[, password]]])
-
형식 타입 : "GET", "POST", "PUT", "DELETE"
-
url : url
-
비동기 여부 : true(비동기), false(동기), defalut(true)
-
user : 암호화를 사용하는 경우 사용 default null
-
password : 암호화를 사용하는 경우 사용 default null
1
2
3
|
var xhr = new XMLHttpRequest();
xhr.open('GET','http://localhost:3000/',true);
xhr.send(null);
|
이후, send 함수를 통해서 데이터를 전송한다. 전송할 수 있는 데이터 포맷은 json, xml .. 타입이 존재한다.
밑의 예제에서는 json을 활용한 예제를 살펴보았다. header를 설정하는 함수(setRequestHeader)에 대해서 알아보자.
setRequestHeader(header, value)
-
header : 설정 될 값을 가진 헤더의 이름
-
value : 헤더의 본문(body)에 설정될 값
1
2
3
4
5
6
|
var data = {
name: 'apple',
expiredate: 20191001,
};
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(data));
|
이상으로 XHR을 알아봤는데 해당 기능을 알고 있으면 web scraping시 많은 도움이 됩니다.
크롬의 기능중에 network tab 의 XHR에서 어떤 데이터를 어떤 주소를 보내는지 확인 가능하다.
'Web Scraping(Crawling)' 카테고리의 다른 글
Beautiful Soup 과 DOM을 이용한 웹 스크래핑(web scraping) (0) | 2019.10.10 |
---|---|
DOM(Document Object Model) (0) | 2019.10.10 |
Ajax(Asynchronous JavaScript and XML) 란 (0) | 2019.10.09 |
.bash_profile .bashrc 차이점 (0) | 2019.10.06 |
OSX Mac brew python version 관리 (0) | 2019.10.06 |
- Total
- Today
- Yesterday
- data visualization
- XMLHTTPRequest
- cookie
- Internet of Things
- homebrew
- 세션
- Python
- Session
- BREW
- Anaconda
- XHR
- OSX
- bashrc
- IOT
- bash_profile
- 쿠키
- deck.gl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |