Git Product home page Git Product logo

chzzkchat's Introduction

Chzzk Chat Crawler

파이썬을 통해 네이버 치지직 서비스의 채팅을 크롤링 해봅시다.

이 코드는 kimcore님의 코드를 기반으로 작성하였습니다.

설치

# 코드 다운로드
$ git clone https://github.com/Buddha7771/ChzzkChat .
$ cd ChzzkChat

# 가상환경 설치
$ conda create -n chzzk python=3.9
$ conda activate chzzk

# 패키지 설치
$ pip install -r requirements.txt

준비하기

  1. 웹 브라우저에서 네이버를 키고 개발자 도구(F12)를 킵니다.
  2. 쿠키탭에 들어가 NID_AUTNID_SES 값을 찾습니다.
  3. 해당 값들을 cookies.json 파일에 들어가 붙여 넣습니다.

사용하기

# 예시
python run.py 

# 특정 채널에 적용하려면 아이디를 찾아 옵션으로 넣습니다
python run.py --streamer_id 9381e7d6816e6d915a44a13c0195b202

출력 내용은 자동으로 chat.log에 저장됩니다.
작동을 중지하려면 `ctrl + c'을 눌러주세요.

chzzkchat's People

Contributors

buddha7771 avatar lee2532 avatar

Stargazers

 avatar MJ Shin avatar  avatar KIM IN WOO avatar Lee Min Woo avatar Youn avatar Young Min Joo avatar replica avatar  avatar HeeJae Yu avatar  avatar  avatar Dalnyem avatar  avatar  avatar nimo_dev avatar mightylg9094 avatar yng._.min avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

chzzkchat's Issues

버그제보

  1. 방송전에 대기탈때 방송기록저장 잘되길래 켜놨는데 방송시작되면 생방채팅기록이 chat.log에 저장안됨
  2. 저 버그 때문에 방송시작때 다시 돌렸는데 방송시작 전 채팅기록이 chat.log에서 사라짐
    이 시점에서 생방기록은 저장잘됨, 동일방송으로만 돌렸음

웹소켓 채팅 보내기

안녕하세요. 비전공자라서 이슈로 여쭈어봅니다..

쿠키로 로그인된 상태로 wss에 접속되는걸 확인했는데
혹시 명령어 봇 같이 코멘트를 감지하고 메시지를 보내는 것이 지금 api로 가능할까요?

웹소켓 메시지를 보내는 것이 난이도가 높은 것 같아서 여쭤봅니다..

봇을 실행 도중 방송에서 19금 설정시 fetch_accessToken 오류발생

작성 하신 치지직 크롤러 기반으로 활용해서 잘 사용 하던 도중 어느 시점 부터 방송 19금을 걸 시 아래와 같은 오류가 뜹니다.
NID_AUT, NID_SES 값은 혹시 해서 삭제 했습니다.

Traceback (most recent call last):
File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\module\api.py", line 84, in fetch_accessToken
return response['content']['accessToken'], response['content']['extraToken']
TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\multiprocessing\process.py", line 315, in _bootstrap
self.run()
File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\test9.py", line 914, in check_chatChannelId
asyncio.run(chzzk_chat_instance.connect())
File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\asyncio\base_events.py", line 647, in run_until_complete
return future.result()
File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\test9.py", line 81, in connect
self.accessToken, self.extraToken = api.fetch_accessToken(self.chatChannelId, self.cookies)
File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\module\api.py", line 86, in fetch_accessToken
raise ValueError(f'잘못된 입력값 : {chatChannelId}, {cookies}')
ValueError: 잘못된 입력값 : None, NID_AUT, NID_SES

라이브러리 설치 방법 수정

기존 README.md 방식으로 라이브러리르 설치할경우 시간에 따라 다른 버전의 라이브러리가 설치됨에 따라 오류 발생
이를 통일 하기 위해 requirements 에 버전 고정

python run.py 실행시 오류

안녕하세요. 개발자님
우선, 제가 코린이(비전공자)라는 점 미리 양해 부탁드립니다

VS코드에서 터미널로 python run.py 했는데 다음과 같이 오류가 뜨네요
혹시나 싶어서 깃허브에 올려주신 알집 파일을 새로 다운 받아서 설치해보기도 했습니다.
채팅 잘 올라오다가 갑자기 이렇게 떴습니다. 해결방법이 궁금합니다..

$ python run.py
Traceback (most recent call last):
File "C:\Users\ABC\OneDrive\바탕 화면\코드\VS Code\Chzzk\ChzzkChat\run.py", line 172, in
chzzkchat = ChzzkChat(args.streamer_id, cookies, logger)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ABC\OneDrive\바탕 화면\코드\VS Code\Chzzk\ChzzkChat\run.py", line 25, in init
self.connect()
File "\Users\ABC\OneDrive\바탕 화면\코드\VS Code\Chzzk\ChzzkChat\run.py", line 30, in connect
sock = WebSocket()
^^^^^^^^^^^
TypeError: WebSocket.init() missing 3 required positional arguments: 'environ', 'socket', and 'rfile'

채널아이디 쳐도 프로그램 동작안됨

2024년 3월 5일부터 채널아이디 써도 프로그램이 작동안하게 바뀜
오류내용 : Traceback (most recent call last):
File "C:\run.py", line 189, in
chzzkchat = ChzzkChat(args.streamer_id, cookies, logger)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\run.py", line 22, in init
self.channelName = api.fetch_channelName(self.streamer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\api.py", line 21, in fetch_channelName
raise ValueError(f'잘못된 입력값 : {streamer}')
ValueError: 잘못된 입력값 : 9381e7d6816e6d915a44a13c0195b202

버그제보

  1. 익명도네 나오면 채팅기록이 전체중단됨
  2. 이모지가 채팅에 있으면 해당 채팅만 기록안됨
    예시 : 😆 나무
    이런식으로 있으면 이모지만 안나오는게 아니라 나무도 채팅저장안됨
  3. 네이버 로그인상태로 방송시작 30분전에 대기타고 있으면 10분정도 기록되다 채팅기록이 중단됨
    생방때는 채팅연달아서 제대로 기록됨

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.