Yahoo 뉴스와 Hatena 북마크와 같은 코멘트가있는 뉴스 사이트를 만들고 싶습니다.

코멘트를 모으는 방법?



코멘트를 모으는 것은, 지난의 일이군요.
조금 생각했지만 Twitter에서 뉴스를 트윗하는 댓글에서
빼내면 좋지 않을까 섬뜩했습니다 💡
파이썬에서 트위터 뉴스에 대한 코멘트를 추출했습니다.
import tweepy
import re
from collections import Counter
import unicodedata
import string

consumer_key    = "twitterapiのconsumer_key"
consumer_secret = "twitterapiのconsumer_secret"

auth = tweepy.AppAuthHandler(consumer_key, consumer_secret)
api = tweepy.API(auth)

title = "ニュースのタイトル"
url = "ニュースのURL"
site_domain_name = "配信元"

title1 = r"" + re.escape(title) + r"(.|\s)*#\S+(\s|$)"
title2 = r"" + re.escape(title) + r"\s(.{0,40})https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
title3 = r"" + re.escape(title) + r"(.{0,40})https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
title4 = r"" + re.escape(title)

tweets = api.search(url, count=100, exclude='retweets', tweet_mode='extended', lang = 'ja', result_type='recent')

for tweet in tweets:
    text = re.sub(title1, "", tweet.full_text)
    text = re.sub(title2, "", text)
    text = re.sub(title3, "", text)
    text = re.sub(title4, "", text)
    text = re.sub(r'((.*?))', "", text)
    text = re.sub(r'\((.*?)\)', "", text)
    text = re.sub(r'【(.*?)】', "", text)
    text = re.sub(r'\[(.*?)\]', "", text)
    text = re.sub(r'〔(.*?)〕', "", text)
    text = re.sub(r'#\S+(\s|$)', "", text)
    text = re.sub(r'#\S+(\s|$)', "", text)
    text = re.sub(r'@[a-zA-Z0-9_]+さんから', "", text)
    text = re.sub(r'@[a-zA-Z0-9_]+さん', "", text)
    text = re.sub(r'@[a-zA-Z0-9_]+から', "", text)
    text = re.sub(r'@[a-zA-Z0-9_]+より', "", text)
    text = re.sub(r'|(.*)(\s|$)', "", text)
    text = re.sub(r'\|(.*)(\s|$)', "", text)
    text = re.sub(r'-\s(.*)(\s|$)', "", text)
    text = re.sub(r'■(.*)(\s|$)', "", text)
    text = re.sub(r'@[a-zA-Z0-9_]+', "", text)
    text = re.sub(r'https?://[\w/:%#\$&\?\(\)~\.=\+\-]+', "", text)
    text = text.replace("【","").replace("】","").replace(">","").replace("/","").replace(":","").replace(":","").replace("/","").replace("|","").replace(".","").replace("“","").replace("”","")
    text = text.replace("via","")
    text = text.replace(site_domain_name,"")
    lists = title.split(" ")
    for list in lists:
        text = text.replace(list,"")
    text = text.lstrip()
    text = text.rstrip()
    comp_a = unicodedata.normalize("NFKC", text)
    table = str.maketrans("", "", string.punctuation  + "「」、。・!")
    comp_a = comp_a.translate(table)
    comp_b = unicodedata.normalize("NFKC", title)
    table = str.maketrans("", "", string.punctuation  + "「」、。・!")
    comp_b = comp_b.translate(table)
    if text != "" and len(text) > 1 and comp_a not in comp_b:
        print(text)

완성된 뉴스 앱






NewsTweet(뉴스 트윗)
https://apps.apple.com/ko/app/newstweet-뉴스 트윗/id1531315934

좋은 웹페이지 즐겨찾기