python 시 뮬 레이 터 가 틱 톡 댓 글 데 이 터 를 추출 하 는 예제 코드 를 실현 합 니 다.
앞서 친구 들 과 틱 톡 댓 글 까지 이 야 기 를 나 눴 던 파충류 때문에 데 모 는 만들어 놓 고 정리 하지 않 았 고,최근 시간 이 넉넉 해 지면 여기 서 필 기 를 한다.
알림:대체적인 사고방식 은 fiddle+app 시 뮬 레이 터 를 통 해 틱 톡 패 키 지 를 하고 python 을 사용 하여 데이터 정 리 를 합 니 다
설치 에 필요 한 도구:
python 3 다운로드
fiddle 설치 및 설정
휴대폰 시 뮬 레이 터 다운로드
틱 톡 부분:
시 뮬 레이 터 를 다운로드 한 후 시 뮬 레이 터 를 엽 니 다.
앱 시장 에서 틱 톡.
틱 톡 에 fiddle 설정 을 하면 설정 이 성공 하면 핸드폰 처럼 사용 할 수 있 습 니 다.
1.도구 설정 및 패키지:
우리 가 아무 동 영상 이나 열 면 fiddle 는 새로운 패 킷 을 새로 고 칠 것 이다.
제 이 슨 에서 동 영상 주 소 를 찾 습 니 다:
2.fiddler 에 다운로드 동 영상 댓 글 코드 추가
fiddler 에 다운로드 비디오 코드 추가:두 가지 주의:
(1)get 뒤의 경 로 는 수시로 보고 교체 해 야 한다.
(2)다운로드 경 로 는 fiddler 아래 에서 직접 새로 만 듭 니 다.
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/general/search/single/")){
var strBody=oSession.GetResponseBodyAsString();
var sps = oSession.PathAndQuery.slice(-58,);
//FiddlerObject.alert(sps)
var timestamp=new Date().getTime();
var filename = "D:\ " + "/" + sps + timestamp + ".json";
var curDate = new Date();
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(strBody);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(strBody);
}
sw.Close();
sw.Dispose();
이 코드 는 fiddler 의 script response 에 넣 습 니 다.다음 그림:추가 한 후에 저장 하 는 것 을 잊 지 마 세 요!!3.python 실행 코드 pycharm 새 py 파일
프로그램 실행 코드:
import os
import json
import time
import requests
import re
import csv
class Douyin(object):
def __init__(self):
pass
self.url1 = 'https://aweme.snssdk.com/aweme/v2/comment/list/?aweme_id=6885929189950737676&cursor=0&count=20&address_book_access=1&gps_access=1&forward_page_type=1&channel_id=0&city=310000&hotsoon_filtered_count=0&hotsoon_has_more=0&follower_count=0&is_familiar=0&page_source=0&os_api=25&device_type=VOG-AL00&ssmix=a&manifest_version_code=110301&dpi=240&uuid=868594157367551&app_name=aweme&version_name=11.3.0&ts=1603350069&cpu_support64=false&app_type=normal&ac=wifi&host_abi=armeabi-v7a&channel=aweGW&update_version_code=11309900&_rticket=1603350070959&device_platform=android&iid=1758845207590062&version_code=110300&mac_address=b0%3Ac4%3A2d%3Ad0%3Aed%3A38&cdid=7974198e-c4c0-49c2-bfaa-43686052706e&openudid=d0c6cffa7067bedd&device_id=844047245117672&resolution=720*1280&device_brand=HUAWEI&language=zh&os_version=7.1.2&aid=1128&mcc_mnc=46000'
self.url2 = 'https://aweme.snssdk.com/aweme/v2/comment/list/?aweme_id=6885163969477086479&cursor=0&count=20'
self.header = {
'Accept-Encoding': 'gzip',
'X-SS-REQ-TICKET': '1603350070957',
'sdk-version': '1',
'Cookie': 'install_id=1758845207590062; ttreq=1$34f012b99d70a66f681dc3d1f0b438fc1b161af3; d_ticket=77247c94236bf8055c233f8cabb6a5ddf3231; odin_tt=fccb20add45a15f08a2519eadcaaf22cba4b3f8f1fceec300a088407c2daf81ea76b260ef6c81dbc86dfedfea011f68c25238f9b3984fe4f5909441dfd1cc9c2; sid_guard=6de18a966e69dcbbf076f629a2ef6511%7C1603345424%7C5184000%7CMon%2C+21-Dec-2020+05%3A43%3A44+GMT; uid_tt=ba98af780b4e337f01463cf98a8afafd; sid_tt=6de18a966e69dcbbf076f629a2ef6511; sessionid=6de18a966e69dcbbf076f629a2ef6511',
'x-tt-token': '006de18a966e69dcbbf076f629a2ef651189d3f6f73fd3d6319b543d50d2e2e5a4cf3e383f8da81f07e049bcf850de07d331',
'X-Gorgon': '0404d8210000a6a3dca0dbc6b11483a82420c9a94dd050a3e511',
'X-Khronos': '1603350070',
'Host': 'aweme.nssdk.com',
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36',
}
self.add = 'D:\ '
self.videos_list = os.listdir('D:\ ')
def parse(self):
' , , , , , , '
lists = []
for vid in self.videos_list:
a = open('D:\ \{}'.format(vid),encoding='utf-8')
content = json.load(a)
for con in content['data']:
meta = {}
try:
meta['title'] = con['aweme_info']['desc']
meta['author_name'] = con['aweme_info']['author']['nickname']
meta['u_name'] = con['aweme_info']['author']['unique_id']
meta['create_time'] = con['aweme_info']['create_time']
timeArray = time.localtime(meta['create_time'])
meta['create_time'] = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
meta['digg_count'] = con['aweme_info']['statistics']['digg_count']
meta['comment_count'] = con['aweme_info']['statistics']['comment_count']
meta['share_count'] = con['aweme_info']['statistics']['share_count']
meta['share_url'] = con['aweme_info']['share_url']
except:
meta['title'] = ''
meta['author_name'] = ''
meta['u_name'] = ''
meta['create_time'] = ''
meta['digg_count'] = ''
meta['comment_count'] = ''
meta['share_count'] = ''
meta['share_url'] = ''
if meta['u_name'] == '':
try:
meta['u_name'] = con['aweme_info']['music']['owner_handle']
except:
meta['u_name'] = ''
if meta['title'] == '':
pass
else:
lists.append(meta)
# print(meta)
return lists
def save_data(self, meta):
header = ['share_url', 'title', 'author_name', 'u_name', 'create_time', 'digg_count', 'comment_count', 'share_count']
print(meta)
with open('test.csv', 'a', newline='', encoding='utf-8-sig') as f:
writer = csv.DictWriter(f, fieldnames=header)
writer.writeheader() #
writer.writerows(meta)
def run(self):
meta = self.parse()
self.save_data(meta)
if __name__ == '__main__':
douyin = Douyin()
douyin.run()
코드 를 실행 한 후 코드 실행 디 렉 터 리 에 엑셀 이 생 성 됩 니 다.ps:틱 톡 은 전체 댓 글 패 킷 을 한꺼번에 되 돌려 주지 않 습 니 다.댓 글 구역 을 내 려 갈 때마다 26 개의 댓 글 데이터 가 더 나 옵 니 다.우 리 는 시 뮬 레이 터 를 이용 하여 미끄럼 작업 을 할 수 있 습 니 다.
더 많은 클릭>마우스 매크로
화면 녹 화 를 클릭 한 후 마우스 로 페이지 를 한 번 내 려 갑 니 다.
멈 추 기 를 누 르 면 방금 한 동작 을 저장 합 니 다.
설정 을 누 르 면 방금 작업 을 순환 재생 하여 댓 글 영역 을 자동 으로 새로 고 칠 수 있 습 니 다.
python 시 뮬 레이 터 가 틱 톡 댓 글 데 이 터 를 가 져 오 는 예제 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 시 뮬 레이 터 가 데 이 터 를 가 져 오 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.