디즈니 실사 영화에 대한 의견이 분분하다. 

 

2023년 5월 24일 개봉하는 인어공주의 흥행 결과가 디즈니 주가에  얼마나 영향을 줄까?

 

개봉 후 관객 평가에 따른 주가 변동,

여전히 남아 있는 미국 디폴트 우려

플로리다 주지사와의 갈등 

여전히 안개속에 있는 디즈니 상황을 반영하듯 주가는 여전이 힘을 못 쓰고 있다. 

 

디즈니의 간판 프렌차이즈 인어 공주가 주가 상승을 견인해 줄 수 있을까?

 

 

 

흑인이 에리얼을 해서가 문제가 아니라 역할에 어울리지 않는다

아시아인 왜 없는 것인가?

 

디즈니 실사 영화 인어공주에 대한 최근 이슈는 주로 할리 베일리가 주인공 에리얼 역을 맡은 것에 대한 논란이다.

할리 베일리는 흑인 배우이기 때문에 일부 팬들은 디즈니가 원작과 캐릭터의 인종을 바꾸는 것이 부적절하다고 주장했다.

다른 팬들은 할리 베일리가 재능있는 배우이며 에리얼 역을 맡기에 완벽하다고 주장했다.

 

이 논란은 디즈니가 인어공주를 포함한 여러 디즈니 영화의 캐릭터를 실사화하면서 시작되었다. 디즈니는 이전에 라이온 킹, 미녀와 야수, 알라딘과 같은 영화의 실사 버전을 제작했으며 모두 원작과 다른 인종의 배우를 캐스팅했습니다. 인어공주에 대한 논란은 특히 심각한데, 왜냐하면 인어공주는 디즈니에서 가장 인기 있고 상징적인 캐릭터 중 하나이기 때문입니다. 또한 인어공주는 백인 여성이 연기하는 고전적인 캐릭터이기 때문에 더 민감한 주제입니다. 

 

 논란에도 불구하고 디즈니는 할리 베일리가 에리얼 역을 맡는다는 결정을 지지했습니다. 디즈니는 할리 베일리가 재능있는 배우이며 에리얼 역을 맡기에 완벽하다고 믿는다고 말했습니다. 디즈니는 또한 인어공주가 모든 연령대의 팬들에게 사랑받는 이야기이며 캐릭터의 인종은 중요하지 않다고 말했습니다.

 

 인어공주에 대한 논란은 디즈니가 캐릭터의 인종을 바꾸는 것의 적절성에 대한 더 큰 논쟁을 불러일으켰습니다. 일부 사람들은 디즈니가 다양한 캐릭터를 대표하기 위해 원작 캐릭터의 인종을 바꾸는 것이 중요하다고 생각하는 반면, 다른 사람들은 디즈니가 원작 캐릭터의 신뢰성을 손상시키고 있다고 생각합니다.

 

2023.05.22 - [AI & 자동화/티스토리&파이썬] - 티스토리 api 자동 글쓰기 1 ( access_token )

2023.05.23 - [AI & 자동화/티스토리&파이썬] - 티스토리 api 자동 글쓰기 2 ( 파이썬 실습-글 목록 가져오기 )

 

Access_token 을 통해서 API 가 정상적으로 동작하는 것을 확인하였다. 

이제 간단한 글을 업로드 하는 작업을 진행해 보자.

기본 코드는 아래와 같으며 수정할 사항은 access_token내 블로그 url 부분이다. 

import requests

def upload_to_tistory(title, content, access_token, blog_name):
    url = f"https://www.tistory.com/apis/post/write?access_token={access_token}&output=json"
    params = {
        "title": title,
        "content": content,
        "visibility": 0,  # 0: 비공개, 1: 보호, 3: 발행
        "blogName": blog_name,
    }

    response = requests.post(url, data=params)
    if response.status_code == 200:
        print("글이 성공적으로 업로드되었습니다.")
    else:
        print(f"글 업로드 실패. 응답 코드: {response.status_code}")
        print(response.text)

# 업로드할 글의 제목과 내용 설정
title = "GPT"
content = "<p>GPT3</p>"

# Tistory API에서 발급한 액세스 토큰과 블로그명 설정
access_token = "여기에 토큰 값 넣고 "
blog_name = "여기에 블로그 주소 넣고 "

# 티스토리에 글 업로드
upload_to_tistory(title, content, access_token, blog_name)

위 처럼 업로드 하게 되면 카테고리가 없고 비공개로 처리 되기 때문에 몇 가지 조치를 해줘야 한다. 


1. 카테고리를 지정하는 방법

특정 카테고리에 글을 업로드 위해서는 카테고리 아이디를 알아야 한다. (기본값 : 0)

Categoty ID 값을 확인 하는 방법은 아래와 같다.

import requests


def category_list(access_token, blog_name):
    url = f"https://www.tistory.com/apis/category/list?output=json&blogName={blog_name}&access_token={access_token}"

    response = requests.get(url)
    data = response.json()

    if response.status_code == 200:
        print("Success")
        print(data)
    else:
        print(f"실패. 응답 코드: {response.status_code}")
        print(response.text)

# Tistory API에서 발급한 액세스 토큰과 블로그명 설정
access_token = "68afe8001e8c5649ade87fe"
blog_name = "https://bard-google.tistory.com/"

# 티스토리에 글 업로드
category_list(access_token, blog_name)

위 파이썬 코드를 실행하면 아래와 같은 결과가 나온다

읽기 좀 어렵게 되어 있으나 천천히 들여다 보면 확인할 수 있다. 

일단 API_Contents 카테고리에 글을 업로드할 예정이라서 확인해 보니 ID 는 아래처럼 나온다

{'id': '1130770', 'name': 'API_Contents',


2. 글 업로드 하기 

카테고리 아이디를 확인했으니 글을 포스팅 해보자 (ID:1130770)

소스코드를 보면 아래와 같다. 

visibility:  발행상태 (0: 비공개 - 기본값, 1: 보호, 3: 발행)

0으로 하면 비공개로 글이 업로드 되므로 처음에는 0으로 진행하여 테스트를 한 다음

3 으로 값을 변경해 주는 것이 좋다.

import requests

def upload_tistory_post(blog_name, access_token, category_id, title, content):
    url = f'https://www.tistory.com/apis/post/write'
    params = {
        'output': 'json',
        'blogName': blog_name,
        'access_token': access_token,
        'title': title,
        'content': content,
        'visibility' : 3,
        'category': category_id
    }

    response = requests.post(url, params=params)
    data = response.json()

    if 'tistory' in data and 'status' in data['tistory'] and data['tistory']['status'] == '200':
        print('Post uploaded successfully.')
    else:
        print('Failed to upload post.')

# 사용 예시
blog_name = 'YOUR_BLOG_NAME'
access_token = 'YOUR_ACCESS_TOKEN'
category_id = 'YOUR_CATEGORY_ID'
title = '제목'
content = '본문 내용'

upload_tistory_post(blog_name, access_token, category_id, title, content)

 

API_Contents 카테고리에 가면 'API_Title"  제목으로 글이 업로드 된 것을 확인 할 수 있다. 

https://bard-google.tistory.com/category/AI%20%26%20%EC%9E%90%EB%8F%99%ED%99%94/API_Contents

API 를 사용하여 파이썬으로 작성된 글

 

이제 할 일은 자동으로 글을 수집하고 가공하는 작업이다. 

수집된 데이터를 HTML 형식으로 저장하고

파일이 생성되면 자동으로 업로드하게 구성하면 된다. 

API Contents

'AI & 자동화 > API_Contents' 카테고리의 다른 글

unity_news_2023-06-09  (0) 2023.06.09
unity_news_2023-06-08  (0) 2023.06.08
disney_news_2023-06-08  (0) 2023.06.08
Today_News  (0) 2023.06.08
Today_News  (0) 2023.05.28

■ 이전 글을 통해서 access_token 을 얻게 되었다.  https://bard-google.tistory.com/17

 

티스토리 api 자동 글쓰기 1 ( access_token )

access_token 정보만 있으면 자동으로 글을 업로드 할 수 있다는 것은 알게 되었다. 그렇다면 access_token 은 어떻게 얻을 수 있을까?? access_token 을 얻기 위에서는 다음과 같은 절차를 따른다. 1. App ID +

bard-google.tistory.com

 

■ 티스토리 Open API 사이트에 가보면 할 수 있는 것들이 나열되어 있는데 

  대표적인 것이 글목록, 읽기, 쓰기, 수정, 파일 첨부, 댓글 기능이다.  (https://tistory.github.io/document-tistory-apis/ )

 

 이번에 해볼 것은 내 티스토리 블로그의 글 목록을 가져오는 파이썬 코드를 작성하여 테스트를 진행해 보려고 한다. 

다른부분은 수정할 것이 없고 access_token 에 access_token 값을 넣고 

blog_url 에 내 티스토리 블로그 주소를 넣어 주면 된다. 

import requests

def get_tistory_posts(blog_name, access_token):
    url = f'https://www.tistory.com/apis/post/list?output=json&blogName={blog_name}&access_token={access_token}'

    response = requests.get(url)
    data = response.json()

    if 'tistory' in data and 'item' in data['tistory'] and 'posts' in data['tistory']['item']:
        posts = data['tistory']['item']['posts']
        for post in posts:
            post_id = post['id']
            title = post['title']
            print(f"Post ID: {post_id}")
            print(f"Title: {title}")
            print('---')
    else:
        print('No posts found.')

# 사용 예시
blog_name = 'YOUR_BLOG_NAME'
access_token = 'YOUR_ACCESS_TOKEN'

get_tistory_posts(blog_name, access_token)

 

위와 같이 파이썬 코드를 작성 후에 실행하면 목록을 불러 오는 것을 확인 할 수 있다. 

API를 통한 목록 불러오기 결과

 

디테일한 사항은 API 사이트를 통해서 확인할 수 있다. 

https://tistory.github.io/document-tistory-apis/apis/v1/post/list.html

 

글 목록 · GitBook

No results matching ""

tistory.github.io

 

 access_token 값을 통한 API 가 잘 동작하고 있다는 것을 확인했다.

최근 디즈니에 대해서 좋지 않은 보고서가 많이 나오고 있다. 

주가에도 많이 반영되고 있으며 미국 주식이 상증장인데 반해 여전히 변동 폭이 적은 상황이다. 


오늘 발표된 보고서에서 Macquarie의 Tim Nollen은 월트 디즈니(DIS – 연구 보고서)를 보류로 하향 조정 했다. 

목표주가는 $103.00 달러. 어제 종가는  $93.76 이었다.  


TipRanks에 따르면 Nollen은 평균 수익률이 -0.1%이고 성공률이 39.83%인 2성급 분석가로 알려져 있다. 


Macquarie 외에도 Walt Disney는 5월 12일 발행된 보고서에서

 Barclays의 Kannan Venkateshwar로부터 보류를 받았습니다. 
그러나 5월 11일 Citi는 Walt Disney(NYSE: DIS)에 대해 매수 등급을 유지했습니다.


Macquarie

 오스트레일리아 시드니에 본사를 둔 글로벌 금융 그룹. 투자 은행, 자산 관리, 자문, 상업 및 기업 뱅킹, 인프라 및 부동산에 중점을 둔 다양한 서비스를 제공한다. 1969년 Stan Owens와 Jim Freehill에 의해 설립되었으며 현재는 호주 증권 거래소에 상장되어 있다. 

Macquarie는 투자 은행 및 자문 분야에서 선두적인 업체. 이 회사는 M&A, 구조 조정, 자본 시장 거래 및 기업 재무 컨설팅을 포함한 광범위한 서비스를 제공한다. Macquarie는 또한 부동산 및 인프라 자산 관리 분야의 글로벌 리더이며 호주, 북미, 유럽 및 아시아에 부동산 및 인프라 자산의 포트폴리오를 보유하고 있다.

Macquarie는 호주에서 대규모 고용주이며 30개 이상의 국가에서 17,000명 이상의 직원을 고용하고 있다. 이 회사는 또한 호주 증권 거래소에서 상장되어 있으며 시가 총액은 1,000억 달러가 넘는다.


Holding rating

주식에서의 "holding rating"은 투자 은행이나 금융 기관에서 주식에 대한 평가를 의미합니다. 이 등급은 종목에 대한 분석과 평가를 통해 도출되며, 투자자들에게 해당 주식을 보유하도록 권고하는 정도를 나타냅니다.

Holding rating은 주로 다음과 같은 등급으로 분류됩니다:

Buy 또는 Strong Buy: 이 등급은 해당 주식에 대한 긍정적인 전망을 의미합니다. 투자 은행이나 금융 기관은 해당 주식이 성장 가능성이 크고 수익성이 높다고 판단하여 투자자들에게 매수를 권장합니다. Buy 등급은 종목이 잠재적인 투자 기회를 가지고 있다고 판단될 때 부여될 수 있습니다.

Hold 또는 Neutral: 이 등급은 해당 주식을 현재 상태 그대로 유지하는 것을 권장합니다. 투자 은행이나 금융 기관은 해당 주식의 전망이 중립적이거나 상승 또는 하락이 크게 예상되지 않는다고 판단하여 투자자들에게 추가 매수나 매도를 권장하지 않습니다. Hold 등급은 일종의 "관망"을 의미할 수 있습니다.

Sell 또는 Strong Sell: 이 등급은 해당 주식에 대한 부정적인 전망을 나타냅니다. 투자 은행이나 금융 기관은 해당 주식이 위험하거나 성과 예상치를 달성하기 어렵다고 판단하여 투자자들에게 매도를 권장합니다. Strong Sell 등급은 특히 주식이 매우 위험하거나 심각한 하락 가능성이 있다고 판단될 때 부여될 수 있습니다.


access_token 정보만 있으면 자동으로 글을 업로드 할 수 있다는 것은 알게 되었다. 

그렇다면 access_token 은 어떻게 얻을 수 있을까??

 

access_token 을 얻기 위에서는 다음과 같은 절차를 따른다.

1. App ID  +  Secret Key  를 통해서 Code 값을 얻고

2. Code   값을 통해서 Access_token 값을 구한다. 



1. AppID 와 Secret Key 얻기

 

1. 인증사이트 접속하여 등록하기  (https://www.tistory.com/guide/api/manage/register)  

 사이트에 접속해서 아래와 같이 기입한다. 

작성후에 App ID 와 secret key 를 얻게 된다. 

등록후에는 이와 같이 App ID 와  Secret Key 값을 얻을 수 있다. 



 

 

2. 접근 허가 하기 

 아래 형태로 메모장에 작성후  인터넷 url 창에 입력 후  <허가 하기>

https://www.tistory.com/oauth/authorize?

client_id={client-id}                              <= App_ID  

&redirect_uri={redirect-uri}                 <=내 블로그 주소 

 &response_type=code
 &state={state-param}



 

허가하기 버튼을 누르면 URL 창이 바뀌면서 code 값을 얻을 수 있다.   (URL 창을 닫지 말고 확인)

https://api-bard.tistory.com/?code=f5d26f1ee0...........0179361ff313c6f8c&state= {state-param}




 

3.  Access_token 얻기

 App ID 와  Secret Key 값을 알면 Access_token 을 얻을 수 있다. 

메모장을 열어서 아래 값을 변경해서 넣어 둔다. 

https://www.tistory.com/oauth/access_token?

client_id={client-id}                              <= App_ID  

&client_secret={client-secret}            <= Secret Key

&redirect_uri={redirect-uri}                 <=내 블로그 주소 

&code={code}                                     <=인증 후 받은 code 값

&grant_type=authorization_code



 

위 와 같이 준비된 상태에서 내 블로그를 들어간 다음 F12를 누르고 network 탭으로 간다. 

3-1) 내블로그 -> F12 -> Network 탭

3-2) 주소창메모장에 적어둔 내용을 기입

 

주소창에 입력 후 엔터를 누르면 아래와 같이 창이 바뀐다.  

 

status 가 200이면 정상적으로 access_token 이 발급된 것이다.  (400 은 에러 발생한 것)

 

이 토근값을 가지고 있으면 내  티스토리 API 에 접근할 수 있으므로 분실하지 말고 잘 보관해야 한다. 

 

블로그에 자동으로 글을 업로드 하는 방식을 찾아 보는 중이다. 

내가 필요로 하는 자료를 자동으로 내 블로그에 기록할 수 있으면 좋겠다. 

 예를 들면 관심있게 보고 있는 기업에 대한 report 가 업데이트 되거나 

기사가 발행되면 자동으로 내 블로그에 업로드 할 수 있도록 한다면

정보 수집을 하는 시간을 줄일 수 있 수 있을 것 같았다. 

열심히 검색을 해보니 다행히 정보가 많아서 생각보다는 쉽게 가능성을 확인 했다. 


테스트가 완료 된 코드는 아래와 같다. 

import requests

def upload_to_tistory(title, content, access_token, blog_name):
    url = f"https://www.tistory.com/apis/post/write?access_token={access_token}&output=json"
    params = {
        "title": title,
        "content": content,
        "visibility": 0,  # 0: 비공개, 1: 보호, 3: 발행
        "blogName": blog_name,
    }

    response = requests.post(url, data=params)
    if response.status_code == 200:
        print("글이 성공적으로 업로드되었습니다.")
    else:
        print(f"글 업로드 실패. 응답 코드: {response.status_code}")
        print(response.text)

# 업로드할 글의 제목과 내용 설정
title = "GPT"
content = "<p>GPT3</p>"

# Tistory API에서 발급한 액세스 토큰과 블로그명 설정
access_token = "여기에 토큰 값 넣고 "
blog_name = "여기에 블로그 주소 넣고 "

# 티스토리에 글 업로드
upload_to_tistory(title, content, access_token, blog_name)

위와 같이 파이썬 코드를 작성하면 티스토리에 비공개 글로 업데이트 된 것을 확인할 수 있다. 

테스트 결과


 

관련해서 여러 방식과 소개 자료가 있는데 결국 필요한 것은 access_token 정보 하나만 있으면 된다. 

access_token 얻는 방법을 알아 보자

가상환경 생성

웹 크롤링 작업을 진행해 볼겸해서 conda 에 가상 환경을 생성해 보려고 한다. 

conda create -n WEB_SEARCH --clone=/home/pi/miniconda3

WEB_SEARCH 라는 이름으로 진행 

Error: Error: post-link failed for: openssl-1.0.2l-0  에러 발생  

역시나 한번에 되는 건 없다. 


Error: Error: post-link failed for: openssl-1.0.2l-0" 오류는 라즈베리파이에서 conda를 설치할 때 발생할 수 있는
일반적인 오류입니다. 이 오류는 openssl 라이브러리 설치 문제로 인해 발생하며 일반적으로 파이썬 3.9 이상을 실행하는 라즈베리파이 4에서 발생합니다.

일반적인 오류라고 하니 해결해 봅시다. 

sudo apt update
sudo apt install libssl-dev

#openssl 라이브러리를 업데이트한 후 conda를 다시 설치할 수 있습니다.
conda install conda
conda install anaconda-client

WEB_SERCH 가 이미 있어서 삭제 후에 다시 생성 

#기존에 동일한 이름으로 생성이 이미 되었다면 삭제
conda env remove --n 가상환경이름

#사용자 생성
conda create -n WEB_SEARCH --clone=/home/pi/miniconda3

 

가상환경 활성화  (source activate 가상환경이름)

conda activate WEB_SEARCH 를 진행했더니 에러가 발생했다. 

source activate WEB_SEARCH

음... 설치는 되는 것 같은데 conda환경에서 라이브러리 설치를 하면 ssl 에러가 여전히 발생했다.

armv8 버전에 64bit 로 다운로드 하여 설치를 진행하였으나 이 또한 원할하지 않았다. 

 

> 라즈베리파이4 버전에서 사용할 수 있는 Conda 는 아직 원할하지 않는것 같다. 

 

리눅스 환경에서 진행하는 경우

## 환경설정 적용 (부팅 시 자동 적용 되도록 셋업을 했다면 진행하지 않아도 된다 )

source ~/.bashrc

 

### 사용자 리스트 확인 

conda env list

 

### 사용자 생성

conda create -n AI_PIC python=3.10.6

 

### 사용자 삭제 

conda env remove --n 가상환경이름

 

### 가상환경 활성화

conda activate 가상환경이름

최근 라즈베리파이는 OS 설치시에 SSH 설정을 같이 할 수 있도록 하고 있어 SD Card 로 부팅시스템을 만들고 나면 바로 SSH 접속이 가능하다.  (자세한 것은 공식 홈페이지 참조 (https://www.raspberrypi.com/software/) )

미니콘다는 파이썬 패키지 관리자 및 가상 환경 관리 프로그램인 conda의 무료 최소 설치 프로그램입니다. 아나콘다의 작은 부트스트랩 버전으로 conda, Python, 해당 패키지에 의존하는 패키지 및 pip, zlib 및 기타 몇 가지 유용한 패키지만 포함됩니다.

1. ssh 로 접속하여 폴더를 하나 만들고 miniconda 설치 파일을 다운로드 한다.
( 라즈베리파이4 CPU =  Quad core Cortex-A72 (ARM v8) 64-bit SoC)

wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-aarch64.sh

 

2. 설치 진행 (설치 경로를 변경한다. )

sudo md5sum Miniconda3-py38_4.10.3-Linux-aarch64.sh # (optional) check md5
sudo /bin/bash Miniconda3-py38_4.10.3-Linux-aarch64.sh 
# -> change default directory to 
/home/pi/miniconda3

 

3. 환경변수 추가 

#open the bashrc
sudo nano /home/pi/.bashrc 
# -> add this line: 
export PATH="/home/pi/miniconda3/bin:$PATH"

 

4. TEST

source /home/pi/.bashrc
conda
python --version

+ Recent posts