사이트를 크롤링할 때 소스코드 내부에 있는 데이터를 json으로 파싱 하려고 할 때 잦은 에러를 마주한다...
1. 너무 JSON형식이 맞는데 처음부터 안 되는 경우
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
response_text = response.content.decode('utf-8')
-> 응답받은 content or text를 디코드 해준다.
2. 잘가져온거 같은데 중간에서 자꾸 에러가 나는 경우
ValueError: Expecting , delimiter: line 1 column 532 (char 531)
try:
result_data = json.loads(result_data)
except json.JSONDecodeError as e:
print(e)
colno = e.colno
print(result_data[colno-10:colno+10])
-> 문제가 발생하는 위치를 확인한 후 replace 해준다
JSON형식
{"result":
{"Info":
{"authUrlType": "LOGIN",
"authUrl": "https://blog.com",
"displayType": "NORMAL"}
}
}
Python으로 파싱할 수 있는 JSON형식
{'result':
{'Info':
{'authUrlType': 'LOGIN',
'authUrl': 'https://blog.com',
'displayType': 'NORMAL'}
}
}
728x90
'프로그래밍 > Crawling' 카테고리의 다른 글
[Python] 페이지 요청 보낼 때 가상의 유저 만들기 - fake_useragent (0) | 2024.03.27 |
---|---|
[Selenium] iframe 변경하는 방법 / 상위 프레임으로 변경하는 방법 (0) | 2022.08.18 |
[Crawling] https 403에러 발생 해결방법 (0) | 2022.08.17 |
[Selenium] 버튼 클릭해서 나오는 값 동적 크롤링 하는 방법 (0) | 2022.08.16 |
[Selenium] 네이버 동적 로그인 하기 - 셀레니움 사용법 (0) | 2022.08.16 |