728x90
소개
지난 포스팅에 이어서 기사와 댓글을 맵핑해야겠죠.
팁으로, 다음과 같이 검색창을 활용하는 것에 대해 알아보겠습니다.
이어서
댓글 데이터를 제공해주는 API URL 을 보면 해당 부분이 ID 인 것을 직감할 수 있는데요.
이 ID 값을 검색하는 것입니다.
뉴스 기사의 ID 와 댓글의 ID 를 맵핑해주는 API 는 다음 URL 인 것을 볼 수 있습니다.
요청을 해보면 다음과 같이 401 코드가 뜨는데요.
401 코드는 인증 오류를 나타냅니다.
Request Headers 에 보면 Authorization 라는 키 값을 찾을 수 있습니다.
보고있는 페이지는 클라이언트의 브라우저를 통해서 인증을 받는 것이구요.
파이썬 코드는 브라우저처럼 자동으로 해주지 않습니다. 추가해주어야 합니다.
두번에 걸쳐 요청을 하는 것을 보실 수 있습니다.
수집하려는 댓글 수는 url 에 limit 과 같은 파라미터를 조정하면서 해보시면 될 것 같구요.
import requests
from bs4 import BeautifulSoup as bs
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}
url = 'https://comment.daum.net/apis/v1/posts/@20200808222940331'
headers.update({
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb3J1bV9rZXkiOiJuZXdzIiwiZ3JhbnRfdHlwZSI6ImFsZXhfY3JlZGVudGlhbHMiLCJzY29wZSI6W10sImV4cCI6MTU5Njk5ODY5OSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9DTElFTlQiXSwianRpIjoiZDg3OThiMWItZWI5YS00YjQwLThkNDktMjEwNDEyOThlNjM0IiwiZm9ydW1faWQiOi05OSwiY2xpZW50X2lkIjoiMjZCWEF2S255NVdGNVowOWxyNWs3N1k4In0.WX8VzBBDUVU9zRw3t7f1J_XK5AeNKT16iFvuDEPxs2A'
})
res = requests.get(url, headers=headers)
if res.status_code == 200:
json_data = res.json()
print(f'id : {json_data["id"]}')
print(f'title : {json_data["title"]}')
url = 'https://comment.daum.net/apis/v1/posts/{}/comments?parentId=0&offset=0&limit=3&sort=LATEST&isInitial=false&hasNext=true'
res = requests.get(url.format(json_data['id']))
json_data = res.json()
for d in json_data:
print(d['content'])
else:
print(res)
id : 147107576
title : 수도권에 강한 비 내린다..호우주의보→경보 격상
나라탓 대통령탓 하지마세요
하늘에서 내린 재해입니다
남을 탓하기 전에 내 잘못은 없습니까?
수재민 모두에게 용기를 주십시요
희망을 버리지 마십시요
다시 딛고 일어서서 이 어려움을
이겨내시기를 기원합니다
또 500mm라고 겁주네
벌써 590×4번=2000mm가 수도권 어디에 왔는지
이러니 개상청.구라청이지
아니면 말고냐?.?
주의사항
확인해보니 인증키는 시간 간격으로 변경되는데요. (어제 저장해둔 인증키로 안되었음)
키가 동작하면 예전 기사에도 접근이 가능하니까, 크롤링하실 때 확인해서 복붙 하셔야 될것 같습니다.
url = 'https://comment.daum.net/apis/v1/posts/@20190711090407067'
id : 132976292
title : '이효리 효과'에 우는 용눈이오름
제발 좀작작좀해라
제주참여환경연대 기억해야겠네.
아무 관계없는 사람 불러다가 글로 사람 조지는 양아치같은 단체라고.
이효리는 왜? 관광객이 몰리는데 뒷짐지고 있는 제주시가 잘못이잖아
'Crawling > Basic' 카테고리의 다른 글
파이썬 크롤링 : 날짜별로 데이터 수집을 위한 날짜연산 (0) | 2020.08.10 |
---|---|
파이썬 다음-뉴스 댓글 크롤링 하기 -2 : 동적인 데이터를 수집하는 방법 (0) | 2020.08.09 |
파이썬 다음-뉴스 크롤링 하기 -1 (0) | 2020.08.07 |
파이썬 크롤링할 범위를 구하는 방법 (0) | 2020.08.07 |
아이피 우회하여 크롤링하기 tor / requests[socks] (0) | 2020.08.03 |