파이썬 댓글 개수 크롤링

조회수 727회

'https://news.v.daum.net/v/20190728165812603'
이 기사의 댓글 개수를 크롤링하고자 합니다.

url ='https://comment.daum.net/apis/v1/ui/single/main/@20190728165812603'

headers = {
    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJncmFudF90eXBlIjoiYWxleF9jcmVkZW50aWFscyIsInNjb3BlIjpbXSwiZXhwIjoxNTY0NjcxNDAwLCJhdXRob3JpdGllcyI6WyJST0xFX0NMSUVOVCJdLCJqdGkiOiI3MDllNDI5MC0yZmJjLTRmOTUtOTJlOC1mMTAzMDk5ZjYyYTciLCJjbGllbnRfaWQiOiIyNkJYQXZLbnk1V0Y1WjA5bHI1azc3WTgifQ.fQU2739LvY9EZLlNs-Go1VlCVEtz-I-JdS_kKJeOLDc',
    'Origin': 'https://news.v.daum.net',
    'Referer': 'https://news.v.daum.net/v/20190728165812603',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}

resp = requests.get('https://comment.daum.net/apis/v1/posts/@20190728165812603', headers=headers)
data = resp.json()
data['commentCount']

이 코드를 실행하였더니 'JSONDecodeError: Expecting value: line 1 column 1 (char 0)' 이러한 에러가 뜨고 print(resp) 를 해도 Response [401] 이런 에러가 뜹니다. 어디가 잘못된건지 알 수 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 리퀘스트값을 출력해본 결과 다음과 같이 나옵니다.

    {'post': 
        {'id': 값,
        'forumId': 값,
        'postKey': 값,
        'flags': 값,
        'title': 값,
        'url': 값,
        'icon': 값,
        'commentCount': 값,
        'childCount': 값,
        'popularOpened': 값
        }
    }
    

    post 값 안에 commentCount가 존재하기 때문에 post값을 먼저 불러준 다음 commentCount값을 불러와야 합니다.

    다음과 같이 시도해보세요.

    import requests
    import json
    
    url ='https://comment.daum.net/apis/v1/ui/single/main/@20190728165812603'
    
    headers = {
        'Authorization': Authorization값 입력,
        'Origin': 'https://news.v.daum.net',
        'Referer': 'https://news.v.daum.net/v/20190728165812603',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
    }
    
    r = requests.get(url, headers=headers)
    j = r.json()['post']
    print(j)
    print(j['commentCount'])
    
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)