ENCORE CLOUD ARCHITECTURE TIL 2/18

2435 ワード

REST API
REST:Representation State Transferの略で、リソースの状態を名前で区切って交換することを意味します.
リソースの表示によるステータスの伝達
a)資源の表示
-リソース:ソフトウェア管理のすべてのコンテンツ
-ex)ドキュメント、画像、データ、ソフトウェアそのものなど
b)状態(情報)伝達
-データが要求されたときにリソースのステータスが渡されます.
-通常、jsonまたはxmlでデータを交換します.
WWWなどの分散型スーパーメディアシステムのためのソフトウェア開発アーキテクチャ.
-RESTは基本的にWebの従来技術とHTTPプロトコルを踏襲しているため、Webのメリットを最大限に活用できるアーキテクチャである.
−RESTは、ネットワーク上のクライアントとサーバとの間の通信方式の一つである.
RESTの具体的な概念:HTTP URIによって資源を指定し、HTTP方法によってこの資源に対してCRUD操作を適用する.
−つまり,RESTは,リソースベースの構造設計を中心として,HTTP手法によりリソースを処理して設計されたアーキテクチャである.
-ウェブサイトの画像、テキスト、データベースコンテンツなどすべてのリソースに一意のID HTTP URIを付与する.

NAVERポータルAPIの使用


https://developers.naver.com/docs/search/news
このサイトにログインしてOpen APIの使用を申請する


次に、クライアントID、クライアントSecret値を使用します.
NAVERニュースを使用した検索ページスクロールプログラムの作成
Pythonプログラムを作成します.
config.py
client_id = "본인 클라이언트 아이디"
client_secret = "시크릿 키"
naverCrawler.py
import urllib.request
import config

def makeURL(sNode, search_text):
    base = "https://openapi.naver.com/v1/search"
    node = "/%s.json" % sNode
    parameters = "?query=%s" % urllib.parse.quote(search_text)
    url = base + node + parameters
    print(url)
    return url

def requestURL(url):
    req = urllib.request.Request(url)
    req.add_header("X-Naver-Client-Id", config.client_id)
    req.add_header("X-Naver-Client-Secret", config.client_secret)
    try:
        response = urllib.request.urlopen(req)
        if response.status == 200:
            print("URL Request Success")
            data = response.read().decode('utf-8')
            return data
    except Exception as e:
        print(e)
        print("Error for URL : %s" %url)
        return None

def main():
    sNode = 'news' #blog, book 등 검색 엔진 변경 가능
    search_text = '챔스' # 원하는 검색 키워드 입력

    targetURL = makeURL(sNode, search_text)
    result = requestURL(targetURL)
    print(result)

main()
実行時

これに関連する内容が端末に表示されます.