Development/PHP

[Crawler] post 방식의 json 파싱

곽진돔 2021. 12. 23. 16:42

맨날 get 방식만 사용하다가 오랜만에 post방식 사용하려니 잘안되어서 머리 아팠는데 우여곡절에 해결 ㅎㅎ

post 파싱이 안될때 !

  • 400 bad request
  • 301 moved parameter

해결방법

경로 : 개발자도구(F12) > Network > Payload > Request Payload

- postValue 값 넘겨주기

Request Payload 값

- postValueLen(:postValue의 길이) 넘겨주기

$strPOSTValueLen = strlen( $strPOSTValue );

주의 : 값 넘겨줄 때 빈 값이 있으면 안됨.

파싱 전 입력한 데이터들 print_r로 찍어보기.

 

- Referer 값 주기

더보기

POST subURL HTTP/1.1
Host: HostURL
Content-Type: application/json
User-Agent: 

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Referer: URL
Cookie: 
Content-Length: strlen(postValue)

 

postValue


Connection: close

 

로 값 받아와서 출력했는데.. 값이 유니코드로 출력된다.

유니코드 json_decode 하기

\uHHHH 16진수 네 자리로 표현된 유니코드 문자
{
    "comment_list": [{
        "srl": "2283413322",
        "ct": "\uc544\uc774\ud328\ub4dc\ub791 \uc5f0\uacb0 \uc798 \ub418\uace0 \ub098\ub294 \ubc84\uc9881\uc4f0\ub2e4\uac00 2\ub85c \uac08\uc544\ud0d4\ub294\ub370 \uc5c4\uccad \ub9cc\uc871\ud574!",
        "rd": "20211220181443",
        "ind": "-1"
    }, {
        "srl": "2283569274",
        "ct": "\uc6c5 \ub098 \ud50c\ub9bd3\ub791 \uc544\uc774\ud328\ub4dc\ud504\ub85c \uc4f0\ub294\ub370 \ub9cc\uc871!! \uc5d0\uc5b4\ud31f\ud504\ub85c\uc4f0\ub2e4\uac00 \ub0b4\ub824\uc628\uac70\ub77c\uc11c \uc880 \uc5ed\uccb4\uac10\ub418\uae34\ud588\ub294\ub370 \uac00\uaca9\uc774 \ud6e0\uc5b4\uc5b4\uc5b4\uc5bc\uc52c\uc800\ub834\ud558\uace0 \ub178\uce94\uc788\uc5b4\uc11c \uc88b\uc544",
        "rd": "20211220203420",
        "ind": "-1"
    }],
    "document_srl": 2283392978,
    "added_number": 0,
    "now_comment_page": 1
}

bracat

유니코드로 받아온 값을, 한글로 변환해준다.

 

유니코드 변환은 아래 글 참고(PHP 5)

2022.01.05 - [PHP] - 유니코드 변환(decode)

 

 


 

브라켓이 코드정렬해서 보기 참 예쁜 것 같다.

html이나 json 코드는 주로 bracat으로 정렬하고 보는 편이다.

 

어제는 에디터플러스3에 코드정렬 기능을 추가했다.

아래 파일을 다운로드 받고 에디터 플러스 경로에 파일을 추가해준다.

 

설정

메뉴바 > 도구 > 사용자 도구 구성 > 다운로드 받은 파일 추가 후 > 동작 : 텍스트 필터로 실행(바꾸기) 선택 > 적용 

htmlarg.zip
0.05MB