LoginSignup
2
3

More than 3 years have passed since last update.

【Python】HTMLをJSON形式にしたり、簡易的にjQueryのセレクタっぽい解析ができるモジュールを作ってみた。

Last updated at Posted at 2020-09-13

きっかけ

唐突にHTMLをJSON形式に変形したい衝動に駆られたので書きました。
ついでにセレクタ機能もどきもつけてみようかと。

このセレクタ機能もどきを使えばQiitaのトップページから2行でトレンド情報のJSONを抜き出せます。

構造

・ディクショナリクラスを継承して、辞書としての機能のほか、タグや親(子)要素、テキストなどの情報を個別に保持できるクラス
・HTMLの各タグを上記クラスに加工する関数
・おまけのHTTPリクエストから加工までやってくれる関数

以上

実装

html2json.py
import re

class html(dict):
    def __init__(self, tag, parent=None, attributes={}):
        super(html, self).__init__(attributes)
        self.tag = tag
        self.parent = parent
        self.attributes = attributes
        self.child = []
        self.text = ''
        self.innerText = ''
        self.__dict__.update(
            {re.sub("[-\s]", "_", k): v
             for k, v in attributes.items()})
        if tag:
            self.jq = self.parent.jq
        else:
            self.jq = {}

    def addChild(self, child, attributes={}):
        c = html(child, self, attributes)
        if child in self.child:
            if type(self[child]) != list:
                self[child] = [self[child], c]
            else:
                self[child].append(c)
        else:
            self[child] = c
        self.child.append(child)
        for k, v in attributes.items():
            t = '#' + v if k == 'id' else '.' + v if k == 'class' else f'{k}="{v}"'
            if t in self.jq.keys():
                if type(self.jq[t]) == list:
                    self.jq[t].append(c)
                else:
                    self.jq[t] = [self.jq[t], c]
            else:
                self.jq[t] = c
        t = child
        if t in self.jq.keys():
            if type(self.jq[t]) == list:
                self.jq[t].append(c)
            else:
                self.jq[t] = [self.jq[t], c]
        else:
            self.jq[t] = c
        return c

    def atext(self, t, inner=True):
        if t:
            self.text += ("\n" + t) if self.text else t
            if inner: self.innerText += t
            if self.parent:
                self.parent.atext(t, False)


def parse2json(h):
    a = html("")
    k = 0
    p = a
    singlet = set(re.findall("</?(\S+?)(?:\s.*?)?>", h)) ^ set(
        re.findall("</(\S+?)>", h))
    scripts = (s for s in re.findall("<script.*?>(.*?)</script>", " ".join(
        h.splitlines())))
    h = re.sub("(<script.*?>).*?(</script>)", "\\1\\2",
               " ".join(h.splitlines()))
    styles = (s for s in re.findall("<style.*?>(.*?)</style>", h))
    h = re.sub("(<style.*?>).*?(</style>)", "\\1\\2", h)
    for i in re.finditer('<(.+?)(\s.+?)?>', h):
        tag = i.group(1)
        attr = dict(re.findall('\s?(.+?)="(.+?)"',
                               i.group(2))) if i.group(2) else {}
        p.atext(h[k:i.span()[0]])
        k = i.span()[1]
        if tag[1:] == p.tag:
            p = p.parent
        elif tag in singlet or i.group(0)[-2] == '/':
            if not attr: continue
            else: p.addChild(tag, attr)
        else:
            p = p.addChild(tag, attr)
            if tag == "script": p.text = scripts.__next__()
            elif tag == "style": p.text = styles.__next__()
    return a


def url2json(url, headers={}):
    from requests import get
    resp = get(url, headers=headers)
    resp.encoding = 'utf-8'
    return parse2json(resp.text)

機能の紹介

htmlクラスのメンバ

.tag: タグ
.parent: 親要素
.child: 子要素(リスト)
.text: タグ内のテキスト要素(子要素のテキストを含む)
.innerText: タグ直下のテキスト要素(script, styleは対象外)
.attributes: 属性及びその値(辞書)
.jq: jQuery的なセレクタをちょっとだけ再現した辞書(使い方は使用例を参照)
.addChild(追加する子要素のタグ名(str), その属性(値)(dict)): 子要素を追加する関数
.aText(追加するテキスト(str), innerTextか(bool)): テキスト要素を追加する関数

parse2json(HTML(str))

str型のHTMLを受け取ってJSON形式(dict)に加工して返す関数

url2json(URL(str), headers = {}(dict))

str型のURLを受け取ってHTTPリクエスト、得られたHTTPをparse2json()に渡した戻り値を返す関数。
第2引数でheadersを指定可能。

使用例

jQueryを意識してjqという名前の辞書(htmlクラスのメンバ変数)にタグや属性に対応する要素の参照が格納されています。
jq['タグ名']や、jq['.クラス名']jq['#id']jq['属性="属性値"']といった形で解析できます。あくまで辞書なので複数条件で検索するなどは出来ません。

試しにQiitaのトップページからトレンドを取得してみたいと思います。

from html2json import *

j = url2json("https://qiita.com/")

#もしくはHTTPのstrを直接渡して、
#from requests import get
#text = get("https://qiita.com/").text
#j = parse2json(text)

j

出力
out
{'html': {'head': {'meta': [{'charset': 'utf-8'},
    {'content': 'Qiitaは、プログラマのための技術情報共有サービスです。 プログラミングに関するTips、ノウハウ、メモを簡単に記録 &amp;amp; 公開することができます。',
     'name': 'description'},
    {'content': 'width=device-width,initial-scale=1,shrink-to-fit=no',
     'name': 'viewport'},
    {'content': '#55c500', 'name': 'theme-color'},
    {'content': 'XWpkTG32-_C4joZoJ_UsmDUi-zaH-hcrjF6ZC_FoFbk',
     'name': 'google-site-verification'},
    {'name': 'csrf-param', 'content': 'authenticity_token'},
    {'name': 'csrf-token',
     'content': 'tqC/csmcj10fm/D8PW+LEYKMny+rvfyb1br8mHfXy480ajaywVIGanwR1gAYOLPsJ6bKnk7iayPSzQ+JfpXIYw=='},
    {'name': 'twitter:card', 'content': 'summary'},
    {'content': '@Qiita', 'name': 'twitter:site'},
    {'property': 'og:type', 'content': 'website'},
    {'property': 'og:title', 'content': 'プログラマの技術情報共有サービス - Qiita'},
    {'property': 'og:image',
     'content': 'https://cdn.qiita.com/assets/qiita-fb-fe28c64039d925349e620ba55091e078.png'},
    {'property': 'og:description',
     'content': 'Qiitaは、プログラマのための技術情報共有サービスです。 プログラミングに関するTips、ノウハウ、メモを簡単に記録 &amp;amp; 公開することができます。'},
    {'content': 'https://qiita.com/', 'property': 'og:url'},
    {'content': 'Qiita', 'property': 'og:site_name'},
    {'content': '564524038', 'property': 'fb:admins'}],
   'title': {},
   'link': [{'href': '/manifest.json', 'rel': 'manifest'},
    {'href': '/opensearch.xml',
     'rel': 'search',
     'title': 'Qiita',
     'type': 'application/opensearchdescription+xml'},
    {'rel': 'shortcut icon',
     'type': 'image/x-icon',
     'href': 'https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico'},
    {'rel': 'apple-touch-icon',
     'type': 'image/png',
     'href': 'https://cdn.qiita.com/assets/favicons/public/apple-touch-icon-ec5ba42a24ae923f16825592efdc356f.png'},
    {'rel': 'stylesheet',
     'media': 'all',
     'href': 'https://cdn.qiita.com/assets/public/style-93c10f153c2288070357952f30807154.min.css'}],
   'script': [{'defer': '" src='},
    {'src': 'https://cdn.qiita.com/assets/public/bundle-817a6d71a8cc5bb6072675d7f25cbfa5.min.js',
     'defer': 'defer'}]},
  'body': {'div': [{'class': 'allWrapper',
     'div': [{'data-hyperapp-app': 'GlobalHeader',
       'data-hyperapp-props': '{&quot;unreadNotificationsCount&quot;:null,&quot;realms&quot;:[{&quot;humanName&quot;:&quot;Qiita&quot;,&quot;isCurrentRealm&quot;:true,&quot;isQiita&quot;:true,&quot;isQiitaTeam&quot;:false,&quot;loggedInUser&quot;:null,&quot;teamId&quot;:null,&quot;url&quot;:&quot;https://qiita.com/&quot;}],&quot;teamFindUrl&quot;:&quot;https://teams-center.qiita.com/find_team&quot;,&quot;isTeamOnlyUser&quot;:null,&quot;currentUser&quot;:null}',
       'div': {'class': 'st-Header',
        'id': 'globalHeader',
        'div': {'class': 'st-Header_container',
         'div': [{'class': 'st-Header_start',
           'a': {'class': 'st-Header_logo mr-1 ',
            'href': '/',
            'svg': {'viewbox': '0 0 426.57 130',
             'xmlns': 'http://www.w3.org/2000/svg',
             'circle': [{'cx': '167.08', 'cy': '21.4', 'r': '12.28'},
              {'cx': '216.33', 'cy': '21.4', 'r': '12.28'}],
             'path': [{'d': 'M250.81 29.66h23.48v18.9h-23.48z'},
              {'d': 'M300.76 105.26a22.23 22.23 0 01-6.26-.86 12.68 12.68 0 01-5.17-3 14.41 14.41 0 01-3.56-5.76 28 28 0 01-1.3-9.22V48.56h29.61v-18.9h-29.52V3.29h-20.17v83.34q0 11.16 2.83 18.27a27.71 27.71 0 007.7 11.2 26.86 26.86 0 0011.43 5.62 47.56 47.56 0 0012.34 1.53h15.16v-18zM0 61.7a58.6 58.6 0 015-24.21A62.26 62.26 0 0118.73 17.9 63.72 63.72 0 0139 4.78 64.93 64.93 0 0164 0a65 65 0 0124.85 4.78 64.24 64.24 0 0120.38 13.12A62 62 0 01123 37.49a58.6 58.6 0 015 24.21 58.34 58.34 0 01-4 21.46 62.8 62.8 0 01-10.91 18.16l11.1 11.1a10.3 10.3 0 010 14.52 10.29 10.29 0 01-14.64 0l-12.22-12.41a65 65 0 01-15.78 6.65 66.32 66.32 0 01-17.55 2.3 64.63 64.63 0 01-45.23-18A62.82 62.82 0 015 85.81 58.3 58.3 0 010 61.7zm21.64.08a43.13 43.13 0 0012.42 30.63 42.23 42.23 0 0013.43 9.09A41.31 41.31 0 0064 104.8a42 42 0 0030-12.39 42.37 42.37 0 009-13.64 43.43 43.43 0 003.3-17 43.77 43.77 0 00-3.3-17A41.7 41.7 0 0080.55 22 41.78 41.78 0 0064 18.68 41.31 41.31 0 0047.49 22a42.37 42.37 0 00-13.43 9.08 43.37 43.37 0 00-12.42 30.7zM331.89 78a47.59 47.59 0 013.3-17.73 43.22 43.22 0 019.34-14.47A44.25 44.25 0 01359 36a47.82 47.82 0 0118.81-3.58 42.72 42.72 0 019.26 1 46.5 46.5 0 018.22 2.58 40 40 0 017 3.84 44.39 44.39 0 015.71 4.63l1.22-9.47h17.35v85.83h-17.35l-1.17-9.42a42.54 42.54 0 01-5.84 4.67 43.11 43.11 0 01-7 3.79 44.86 44.86 0 01-8.17 2.59 43 43 0 01-9.22 1A47.94 47.94 0 01359 119.9a43.3 43.3 0 01-14.47-9.71 44.17 44.17 0 01-9.34-14.47 47 47 0 01-3.3-17.72zm20.27-.08a29.16 29.16 0 002.17 11.34 27 27 0 005.92 8.88 26.69 26.69 0 008.76 5.76 29.19 29.19 0 0021.44 0 26.11 26.11 0 008.72-5.76 27.57 27.57 0 005.88-8.84 29 29 0 002.16-11.38 28.62 28.62 0 00-2.16-11.22 26.57 26.57 0 00-5.93-8.8 27.68 27.68 0 00-19.51-7.9 28.29 28.29 0 00-10.77 2.05 26.19 26.19 0 00-8.71 5.75 27.08 27.08 0 00-5.84 8.8 28.94 28.94 0 00-2.13 11.31zm-194.97-30.5h19.78v73.54h-19.78zm49.25 0h19.78v73.54h-19.78z'}]}},
           'div': [{'div': {'class': 'st-Header_realmSelector',
              'span': {'class': 'fa fa-fw fa-caret-down'}}},
            {'div': {'class': 'st-Header_community',
              'span': {'class': 'fa fa-fw fa-caret-down ml-1of2'}}},
            {'class': 'st-Header_searchButton',
             'span': {'class': 'fa fa-serach'}}],
           'form': {'class': 'st-Header_search',
            'span': {'class': 'fa fa-search'},
            'input': {'class': 'st-Header_searchInput',
             'placeholder': 'Search',
             'type': 'search'}}},
          {'class': 'st-Header_end',
           'a': [{'class': 'st-Header_signupButton', 'href': '/signup'},
            {'class': 'st-Header_loginLink', 'href': '/login'}]}]}}},
      {'class': 'st-HeaderAlert st-HeaderAlert-warning',
       'div': {'class': 'st-HeaderAlert_body'}},
      {'class': 'p-home is-anonymous',
       'div': [{'class': 'nl-Hero',
         'div': {'class': 'nl-Hero_inner',
          'div': [{'class': 'nl-Hero_start',
            'h1': {'class': 'mb-3 nl-Hero_title'},
            'p': {'class': 'nl-Hero_lead'}},
           {'class': 'nl-Hero_end',
            'div': [{'class': 'nl-SocialSignupWrapper',
              'form': [{'class': 'nl-SocialSignup',
                'method': 'post',
                'action': 'https://oauth.qiita.com/auth/github?callback_action=login_or_signup&amp;realm=qiita',
                'button': {'class': 'nl-SocialSignup__button nl-SocialSignup-github',
                 'type': 'submit',
                 'span': {'class': 'fa fa-github'}},
                'input': {'type': 'hidden',
                 'name': 'authenticity_token',
                 'value': 'tBcjq2Dv7jrgxERww9U6syrFVUTxvyE1HyO5PsqZXDPYPr7YZdrUkgqDKIdzpRhv1sLC/6HHiNZ8+vi2o51HkQ=='}},
               {'class': 'nl-SocialSignup',
                'method': 'post',
                'action': 'https://oauth.qiita.com/auth/twitter?callback_action=login_or_signup&amp;realm=qiita',
                'button': {'class': 'nl-SocialSignup__button nl-SocialSignup-twitter',
                 'type': 'submit',
                 'span': {'class': 'fa fa-twitter'}},
                'input': {'type': 'hidden',
                 'name': 'authenticity_token',
                 'value': '5RxsrHz3s7/krj65B4UmDuDPCWVZ3zW/5eewJdcWpwPP0ExIjWLAX1RTmHnIGdC/6SdfFT3chxLmyVqevbRpDg=='}},
               {'class': 'nl-SocialSignup',
                'method': 'post',
                'action': 'https://oauth.qiita.com/auth/google?callback_action=login_or_signup&amp;realm=qiita',
                'button': {'class': 'nl-SocialSignup__button nl-SocialSignup-google',
                 'type': 'submit',
                 'span': {'class': 'fa fa-google'}},
                'input': {'type': 'hidden',
                 'name': 'authenticity_token',
                 'value': 'SwXL0t7GHPdAdNzqzisAhyp3gWbote8enJ+wH2bzW+Juo0XvLIOOtY+H5iO7KxkQ5S4EQ7MNxc3+CDmjsbas0w=='}}]},
             {'class': 'nl-Hero_separator'}],
            'form': {'class': 'nl-SignupForm',
             'action': '/registration',
             'accept-charset': 'UTF-8',
             'method': 'post',
             'input': {'type': 'hidden',
              'name': 'authenticity_token',
              'value': 'oTJBMui6N+i1rWwj++rqOEFxFT2s6+0Fb4Oe8fpfBBIH8p0iprqKiQ5Dr+tI2yHNu07ZdmTzylnWgiCkDNCLOg=='},
             'div': [{'class': 'mb-2 nl-SignupForm_group',
               'label': {'class': 'nl-SignupForm_label', 'for': 'url_name'},
               'input': {'class': 'nl-SignupForm_input',
                'id': 'url_name',
                'name': 'user[url_name]',
                'placeholder': 'qiitan',
                'required': 'required',
                'type': 'text'}},
              {'class': 'mb-2 nl-SignupForm_group',
               'label': {'class': 'nl-SignupForm_label', 'for': 'email'},
               'input': {'class': 'nl-SignupForm_input',
                'id': 'email',
                'name': 'user[email]',
                'placeholder': 'qiitan@qiita.com',
                'required': 'required',
                'type': 'email'}},
              {'class': 'mb-1 nl-SignupForm_group',
               'label': {'class': 'nl-SignupForm_label', 'for': 'password'},
               'input': {'class': 'nl-SignupForm_input',
                'id': 'password',
                'name': 'user[password]',
                'placeholder': '********',
                'required': 'required',
                'type': 'password'}},
              {'class': 'mb-2 nl-SignupForm_group',
               'style': 'margin-left: 0;',
               'input': {'class': 'nl-SignupForm_checkbox',
                'id': 'terms',
                'required': 'required',
                'type': 'checkbox'},
               'label': {'class': 'nl-SignupForm_label',
                'for': 'terms',
                'a': {}}},
              {'class': 'mb-2 nl-SignupForm_group',
               'style': 'margin-left: 0;',
               'input': {'class': 'nl-SignupForm_checkbox',
                'id': 'privacy',
                'required': 'required',
                'type': 'checkbox'},
               'label': {'class': 'nl-SignupForm_label',
                'for': 'privacy',
                'a': {}}},
              {'class': 'nl-SignupForm_recaptcha',
               'script': {'src': 'https://www.google.com/recaptcha/api.js'},
               'div': {'data-sitekey': '6LfNkiQTAAAAAM3UGnSquBy2akTITGNMO_QDxMw6',
                'class': 'g-recaptcha '},
               'noscript': {'div': {'div': [{'style': 'width: 302px; height: 422px; position: relative;',
                   'div': {'style': 'width: 302px; height: 422px; position: absolute;',
                    'iframe': {'                    src': 'https://www.google.com/recaptcha/api/fallback?k=6LfNkiQTAAAAAM3UGnSquBy2akTITGNMO_QDxMw6',
                     '                    frameborder': '0',
                     'scrolling': 'no',
                     '                    style': 'width: 302px; height:422px; border-style: none;'}}},
                  {'style': 'width: 300px; height: 60px; border-style: none;                 bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px;                 background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;',
                   'textarea': {'id': 'g-recaptcha-response',
                    'name': 'g-recaptcha-response',
                    '                  class': 'g-recaptcha-response',
                    '                  style': 'width: 250px; height: 40px; border: 1px solid #c1c1c1;                   margin: 10px 25px; padding: 0px; resize: none;'}}]}}},
              {'class': 'nl-SignupForm_buttonArea',
               'div': {'class': 'nl-SignupForm_button', 'button': {}}}],
             'span': {'class': 'mb-2 nl-SignupForm_helpText'},
             'script': {'src': 'https://www.google.com/recaptcha/api.js',
              'defer': 'defer',
              'async': 'async'}}}]}},
        {'class': 'px-2 px-1@s pt-4 pt-1@s',
         'div': {'class': 'p-home_container',
          'div': [{'class': 'p-home_menu pt-1',
            'div': [{'class': 'p-home_menuHead mb-1'},
             {'class': 'p-home_menuDivider mb-2'},
             {'class': 'p-home_menuHead mb-1'},
             {'class': 'p-home_mobileMenu',
              'select': {'class': 'p-home_mobileMenuDropdown pl-2 pt-1 pb-1 mb-1',
               'onchange': 'location.href=value;',
               'optgroup': [{'label': 'Article Feed',
                 'option': [{'class': 'p-home_mobileMenuItem',
                   'value': '/trend',
                   'selected': 'selected'},
                  {'class': 'p-home_mobileMenuItem', 'value': '/milestones'}]},
                {'label': 'Question Feed',
                 'option': [{'class': 'p-home_mobileMenuItem',
                   'value': '/question-trend'},
                  {'class': 'p-home_mobileMenuItem',
                   'value': '/question-waiting-answers'},
                  {'class': 'p-home_mobileMenuItem',
                   'value': '/question-feed'}]}]}}],
            'a': [{'class': 'p-home_menuItem p-1 pl-2 pl-1@s mb-1 p-home_menuItem-active',
              'href': '/',
              'span': {'class': 'fa fa-fw fa-line-chart mr-1of2'}},
             {'class': 'p-home_menuItem p-1 pl-2 pl-1@s mb-1',
              'href': '/milestones',
              'span': {'class': 'fa fa-fw fa-flag-checkered mr-1of2'}},
             {'class': 'p-home_menuItem p-1 pl-2 pl-1@s mb-1',
              'href': '/question-trend',
              'span': {'class': 'fa fa-fw fa-line-chart mr-1of2'}},
             {'class': 'p-home_menuItem p-1 pl-2 pl-1@s mb-1',
              'href': '/question-waiting-answers',
              'span': {'class': 'fa fa-fw fa-question mr-1of2'}},
             {'class': 'p-home_menuItem p-1 pl-2 pl-1@s mb-1',
              'href': '/question-feed',
              'span': {'class': 'fa fa-fw fa-sort-numeric-asc mr-1of2'}}]},
           {'class': 'p-home_main mb-3 mr-0@s',
            'div': {'data-hyperapp-app': 'Trend',
             'data-hyperapp-props': '{&quot;trend&quot;:{&quot;edges&quot;:[{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T07:53:22Z&quot;,&quot;likesCount&quot;:202,&quot;title&quot;:&quot;オブジェクト指向は単なる【整理術】だよ&quot;,&quot;uuid&quot;:&quot;2aa9859d4da41991bbb7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163629/profile-images/1567829792&quot;,&quot;urlName&quot;:&quot;br_branch&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T03:08:08Z&quot;,&quot;likesCount&quot;:63,&quot;title&quot;:&quot;間違えて違うブランチで作業を始めてしまったときの対処法【Git】&quot;,&quot;uuid&quot;:&quot;dc21de47c617b0d0eebf&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675596/profile-images/1598685340&quot;,&quot;urlName&quot;:&quot;paleo_engineer&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:59:19Z&quot;,&quot;likesCount&quot;:71,&quot;title&quot;:&quot;CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明&quot;,&quot;uuid&quot;:&quot;656bac4c3871031a4448&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/79744/profile-images/1501125720&quot;,&quot;urlName&quot;:&quot;kaityo256&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T17:26:06Z&quot;,&quot;likesCount&quot;:54,&quot;title&quot;:&quot;Pythonでコンソールに綺麗なグラフを描画できる「AsciichartPy」使ってみた。&quot;,&quot;uuid&quot;:&quot;aff5c301aacb8513a11d&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/535270/3e59522dfca791fd0ce7f98d863a9a796ca95a16/large.png?1574159780&quot;,&quot;urlName&quot;:&quot;kkent030315&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T10:57:35Z&quot;,&quot;likesCount&quot;:37,&quot;title&quot;:&quot;スプラトゥーン2のプレイ動画から、やられたシーンだけをディープラーニングで自動抽出する&quot;,&quot;uuid&quot;:&quot;acbc0906046bb7b2b1db&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://avatars3.githubusercontent.com/u/16898831?v=4&quot;,&quot;urlName&quot;:&quot;tfandkusu&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T10:57:47Z&quot;,&quot;likesCount&quot;:31,&quot;title&quot;:&quot;データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です!&quot;,&quot;uuid&quot;:&quot;7d50ff180a4e5c294cb7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352395/profile-images/1557632578&quot;,&quot;urlName&quot;:&quot;ngtkana&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T09:35:58Z&quot;,&quot;likesCount&quot;:40,&quot;title&quot;:&quot;様々な日本語文章を、目線移動無く早く読めるオープンソースツール(Riot Shield)を公開しました&quot;,&quot;uuid&quot;:&quot;c7e48f9f9b3e937c5dad&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/85111/profile-images/1499606550&quot;,&quot;urlName&quot;:&quot;am_nimitz3&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T08:11:54Z&quot;,&quot;likesCount&quot;:20,&quot;title&quot;:&quot;自分のQiita記事をインクリメンタル検索するAlfred Workflowを作ってみた&quot;,&quot;uuid&quot;:&quot;6909b534a59d3550093e&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114396/profile-images/1596162182&quot;,&quot;urlName&quot;:&quot;ryo2132&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T06:43:05Z&quot;,&quot;likesCount&quot;:30,&quot;title&quot;:&quot;SQLアンチパターン\u3000ファントムファイル&quot;,&quot;uuid&quot;:&quot;cc811929485471897c89&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257405/profile-images/1585098105&quot;,&quot;urlName&quot;:&quot;fktnkit&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T08:22:19Z&quot;,&quot;likesCount&quot;:37,&quot;title&quot;:&quot;TypeScriptリポジトリの歩き方&quot;,&quot;uuid&quot;:&quot;a63882c4c42c6ccf8c66&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54872/profile-images/1573246604&quot;,&quot;urlName&quot;:&quot;sisisin&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T09:04:26Z&quot;,&quot;likesCount&quot;:19,&quot;title&quot;:&quot;Ractor超入門&quot;,&quot;uuid&quot;:&quot;f9d1917fda770bcdbe2a&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/191521/profile-images/1531325180&quot;,&quot;urlName&quot;:&quot;S_H_&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:32:05Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;SwiftUIとCombineの練習がてらmacOS向けのピアノアプリ作ってみた&quot;,&quot;uuid&quot;:&quot;0230a14ec6c3a8174568&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/67153/e88c7b2790238820700627c60482ade9228609f7/x_large.png?1575435001&quot;,&quot;urlName&quot;:&quot;Kyome&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:07:56Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;Raspberry PiにVS Code Insider版をインストールする方法&quot;,&quot;uuid&quot;:&quot;fb50b6ac5c175b9b1045&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/81919/profile-images/1549284868&quot;,&quot;urlName&quot;:&quot;karaage0703&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-10T16:01:19Z&quot;,&quot;likesCount&quot;:35,&quot;title&quot;:&quot;【JavaScript】Promiseくんと仲良くなろう&quot;,&quot;uuid&quot;:&quot;4af009c9b21c13d5a368&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/252036/profile-images/1548799764&quot;,&quot;urlName&quot;:&quot;al_tarte&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:14:11Z&quot;,&quot;likesCount&quot;:28,&quot;title&quot;:&quot;《コロナに負けず!!》29歳で営業職からジョブチェンジ。未経験で受託開発企業から内定を頂けました。&quot;,&quot;uuid&quot;:&quot;3eafbcc52c04241788a5&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/635167/4df257c74aac0acdbb03f0e7f63e276aa42830a0/x_large.png?1591368347&quot;,&quot;urlName&quot;:&quot;ki-ku&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-10T22:39:44Z&quot;,&quot;likesCount&quot;:24,&quot;title&quot;:&quot; scikit-learnで機械学習パイプラインをインタラクティブに描画、HTML保存する方法&quot;,&quot;uuid&quot;:&quot;55c7f567ca79b81c36ab&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/191401/185398f529f8156fed141d7b2e1b0a78fc114172/large.png?1599774000&quot;,&quot;urlName&quot;:&quot;sugulu_Ogawa_ISID&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T11:29:02Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;production-ready なGo製2Dゲームライブラリ Ebiten の紹介 \\u0026 リンク集&quot;,&quot;uuid&quot;:&quot;1fd6077327f99245b807&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348791/profile-images/1565355993&quot;,&quot;urlName&quot;:&quot;eihigh&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T00:49:28Z&quot;,&quot;likesCount&quot;:18,&quot;title&quot;:&quot;【翻訳】wordpressのプラグインで毎月5万収益を得ている話&quot;,&quot;uuid&quot;:&quot;ab1b2b6d5676dc55144b&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705937/profile-images/1599573315&quot;,&quot;urlName&quot;:&quot;kirishima_app&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T14:56:56Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;たった3行でVSCode(codeserver)をGoogle Colabで使う方法&quot;,&quot;uuid&quot;:&quot;ebcc8d51476f6f7c5b72&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24723/profile-images/1574818910&quot;,&quot;urlName&quot;:&quot;kojikanao&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T23:36:29Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;Docker × Laravel 8 Jetstream でログイン、ユーザー登録、2要素認証を実装する&quot;,&quot;uuid&quot;:&quot;7824d1293fef4698c212&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/52879/profile-images/1540380605&quot;,&quot;urlName&quot;:&quot;ucan-lab&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T01:56:00Z&quot;,&quot;likesCount&quot;:12,&quot;title&quot;:&quot;PythonでDICOM画像を扱う&quot;,&quot;uuid&quot;:&quot;f145675055796c69e228&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/680528/4c5642d036920f85daf6640335027d9a0387cecc/x_large.png?1595678226&quot;,&quot;urlName&quot;:&quot;asparagasu&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T08:15:21Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;FlutterでTextFieldのフォーカスを正しく外す方法&quot;,&quot;uuid&quot;:&quot;d7fde1d998a30292add7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/99169/profile-images/1473707726&quot;,&quot;urlName&quot;:&quot;tsukushibito&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T04:42:29Z&quot;,&quot;likesCount&quot;:10,&quot;title&quot;:&quot;量子GUIシミュレータ (QPlat)&quot;,&quot;uuid&quot;:&quot;95450143c8ed9a580f31&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/517405/23c55e72f59a70704447c7701ed83bb7994a1906/large.png?1571976772&quot;,&quot;urlName&quot;:&quot;KeiichiroHiga&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T14:02:08Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;【技術書典9】ゲーム関連技術頒布物(新刊)まとめ (2020/9/11 22:00 時点)&quot;,&quot;uuid&quot;:&quot;5f535164ee46f7e0c52d&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258608/profile-images/1566747392&quot;,&quot;urlName&quot;:&quot;takehara-ryo&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:08:53Z&quot;,&quot;likesCount&quot;:9,&quot;title&quot;:&quot;Unityで録音して、録音したサウンドを再生する最小実装&quot;,&quot;uuid&quot;:&quot;b3430e52574831afec92&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328771/profile-images/1595687179&quot;,&quot;urlName&quot;:&quot;ohbashunsuke&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:59:38Z&quot;,&quot;likesCount&quot;:25,&quot;title&quot;:&quot;Kubernetesの負荷試験で絶対に担保したい13のチェックリスト&quot;,&quot;uuid&quot;:&quot;56a5442c1fc4d714c941&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45875/profile-images/1595854294&quot;,&quot;urlName&quot;:&quot;taisho6339&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T08:48:31Z&quot;,&quot;likesCount&quot;:6,&quot;title&quot;:&quot;Prism の Prism Full App (.NET Core) テンプレートを見てみよう&quot;,&quot;uuid&quot;:&quot;cfbf5c9eaea6c5aed4e1&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/70288/edf16d4d4fdd1abcb3e61b06730b0609cdc77adb/x_large.png?1585128349&quot;,&quot;urlName&quot;:&quot;okazuki&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T07:26:47Z&quot;,&quot;likesCount&quot;:16,&quot;title&quot;:&quot;VSCode Live Share+Flutterでのリモートモブプログラミングの現状&quot;,&quot;uuid&quot;:&quot;08db86881da446d70646&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26446/profile-images/1581214874&quot;,&quot;urlName&quot;:&quot;hummer&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T09:18:03Z&quot;,&quot;likesCount&quot;:8,&quot;title&quot;:&quot;簡易LISP処理系の実装例(JavaScript版)&quot;,&quot;uuid&quot;:&quot;2124d6ceba7f3a628a8c&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://pbs.twimg.com/profile_images/1247901639429640194/7IvBd3i7_bigger.jpg&quot;,&quot;urlName&quot;:&quot;ytaki0801&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-13T01:57:50Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;音声分析におけるフーリエ変換とスペクトログラムを理解する&quot;,&quot;uuid&quot;:&quot;6af2cc4c4be0c57bef06&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/651198/profile-images/1591512068&quot;,&quot;urlName&quot;:&quot;shirowanisan&quot;}}}]},&quot;scope&quot;:&quot;daily&quot;}'}},
           {'class': 'p-home_aside',
            'div': [{'class': 'p-home_ad',
              'div': {'data-hyperapp-app': 'GPTSlot',
               'data-hyperapp-props': '{&quot;id&quot;:&quot;home-side-ad&quot;,&quot;adUnitPath&quot;:&quot;/383564218/p_qiita_300x250_anonymous_feed_sidebar-top&quot;,&quot;size&quot;:[300,250]}'}},
             {'data-hyperapp-app': 'Announcement',
              'data-hyperapp-props': '{&quot;announcement&quot;:{&quot;id&quot;:&quot;QW5ub3VuY2VtZW50LTI0&quot;,&quot;title&quot;:&quot;質問フィードの大型アップデート行いました&quot;,&quot;body&quot;:&quot;\\u003cp\\u003e質問フィードの大型アップデートを行いました💁\u200d♀️\\u003cbr\\u003e\\n記事とフィードを分けた上でフィードの種類を追加しており、それに伴い「回答できるタグ」を有効化できるようになりました。\\u003c/p\\u003e\\n&quot;,&quot;detailUrl&quot;:&quot;https://blog.qiita.com/question-feed-update-202009/?utm_source=qiita\\u0026utm_medium=announce&quot;,&quot;isStaffOnly&quot;:false,&quot;isReadByViewer&quot;:false}}'},
             {'data-hyperapp-app': 'UserRanking',
              'data-hyperapp-props': '{&quot;userRanking&quot;:{&quot;edges&quot;:[{&quot;score&quot;:654,&quot;node&quot;:{&quot;name&quot;:&quot;Masa U&quot;,&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/173746/083715c7c11148d94e3512aa1ab76f2540222214/large.png?1581744613&quot;,&quot;urlName&quot;:&quot;_masa_u&quot;}},{&quot;score&quot;:455,&quot;node&quot;:{&quot;name&quot;:&quot;&quot;,&quot;profileImageUrl&quot;:&quot;https://pbs.twimg.com/profile_images/1274400166120812544/DAWcpHec_bigger.jpg&quot;,&quot;urlName&quot;:&quot;yutorisan&quot;}},{&quot;score&quot;:427,&quot;node&quot;:{&quot;name&quot;:&quot;Yuki Aki&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/152231/profile-images/1488816012&quot;,&quot;urlName&quot;:&quot;freddi_&quot;}},{&quot;score&quot;:360,&quot;node&quot;:{&quot;name&quot;:&quot;&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/38580/profile-images/1473687818&quot;,&quot;urlName&quot;:&quot;Hassan&quot;}},{&quot;score&quot;:359,&quot;node&quot;:{&quot;name&quot;:&quot;Ryo Kawamata&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114396/profile-images/1596162182&quot;,&quot;urlName&quot;:&quot;ryo2132&quot;}},{&quot;score&quot;:346,&quot;node&quot;:{&quot;name&quot;:&quot;Yuichi Sugita&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209705/profile-images/1588766257&quot;,&quot;urlName&quot;:&quot;jun40vn&quot;}},{&quot;score&quot;:342,&quot;node&quot;:{&quot;name&quot;:&quot;Yuki&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335670/profile-images/1598003375&quot;,&quot;urlName&quot;:&quot;yukiji&quot;}},{&quot;score&quot;:340,&quot;node&quot;:{&quot;name&quot;:&quot;すぐる(小川雄太郎@電通国際情報サービスISID)&quot;,&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/191401/185398f529f8156fed141d7b2e1b0a78fc114172/large.png?1599774000&quot;,&quot;urlName&quot;:&quot;sugulu_Ogawa_ISID&quot;}},{&quot;score&quot;:332,&quot;node&quot;:{&quot;name&quot;:&quot;&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/11714/profile-images/1473682126&quot;,&quot;urlName&quot;:&quot;__pandaman64__&quot;}},{&quot;score&quot;:287,&quot;node&quot;:{&quot;name&quot;:&quot;Yutaro Shimoda&quot;,&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512695/profile-images/1586063736&quot;,&quot;urlName&quot;:&quot;shimotaroo&quot;}}]},&quot;scope&quot;:&quot;WEEKLY&quot;}'},
             {'data-hyperapp-app': 'TagRanking',
              'data-hyperapp-props': '{&quot;tagRanking&quot;:{&quot;edges&quot;:[{&quot;score&quot;:237,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/56ffccc25b126744837a2b9a64d6c8d5ef98293b/medium.jpg?1591469101&quot;,&quot;name&quot;:&quot;Python&quot;,&quot;urlName&quot;:&quot;python&quot;}},{&quot;score&quot;:210,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/989fbf0489716777eb66116a6cd45429af2facc7/medium.jpg?1595403395&quot;,&quot;name&quot;:&quot;JavaScript&quot;,&quot;urlName&quot;:&quot;javascript&quot;}},{&quot;score&quot;:144,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/ac6cff4d72fe5db793d9cb997b777f982a12008c/medium.jpg?1590068480&quot;,&quot;name&quot;:&quot;Ruby&quot;,&quot;urlName&quot;:&quot;ruby&quot;}},{&quot;score&quot;:129,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/353fa0bbbfd79c4e8837b9c0b13232d80c32c6e8/medium.jpg?1554029821&quot;,&quot;name&quot;:&quot;Rails&quot;,&quot;urlName&quot;:&quot;rails&quot;}},{&quot;score&quot;:97,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/f9384932787d996b6e1ed26d7d0b2bc2a9e36441/medium.jpg?1443704516&quot;,&quot;name&quot;:&quot;初心者&quot;,&quot;urlName&quot;:&quot;%e5%88%9d%e5%bf%83%e8%80%85&quot;}},{&quot;score&quot;:95,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/00f6ce83b6ee54dc44dd953fccd436d467de2766/medium.jpg?1558892430&quot;,&quot;name&quot;:&quot;AWS&quot;,&quot;urlName&quot;:&quot;aws&quot;}},{&quot;score&quot;:91,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/b871970ded17b8af635a100cd45b4d701419a122/medium.jpg?1574663257&quot;,&quot;name&quot;:&quot;PHP&quot;,&quot;urlName&quot;:&quot;php&quot;}},{&quot;score&quot;:80,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/7afc7bca8bd52cac0c49e868f67b979b9a4dd501/medium.jpg?1595403313&quot;,&quot;name&quot;:&quot;Docker&quot;,&quot;urlName&quot;:&quot;docker&quot;}},{&quot;score&quot;:75,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/1bfaf60121121d7dec866c83d4c4453347ec93e2/medium.jpg?1436171387&quot;,&quot;name&quot;:&quot;Java&quot;,&quot;urlName&quot;:&quot;java&quot;}},{&quot;score&quot;:75,&quot;node&quot;:{&quot;mediumIconUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-tag-image/30af4a22607c5936f3ac647331e94978f6feb20a/medium.jpg?1462785908&quot;,&quot;name&quot;:&quot;Python3&quot;,&quot;urlName&quot;:&quot;python3&quot;}}]},&quot;scope&quot;:&quot;WEEKLY&quot;}'},
             {'data-hyperapp-app': 'OrganizationRanking',
              'data-hyperapp-props': '{&quot;organizationRanking&quot;:{&quot;edges&quot;:[{&quot;score&quot;:35,&quot;node&quot;:{&quot;name&quot;:&quot;エンジニアと人生コミュニティ&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/9edf7645984bfd3c7436a1fd049ccbfa748054bc/original.jpg?1592116881&quot;,&quot;urlName&quot;:&quot;engineerlife&quot;}},{&quot;score&quot;:13,&quot;node&quot;:{&quot;name&quot;:&quot;IoTLT&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/67955531570736d618f59dd5e615b01285b22217/original.jpg?1485315227&quot;,&quot;urlName&quot;:&quot;iotlt&quot;}},{&quot;score&quot;:12,&quot;node&quot;:{&quot;name&quot;:&quot;プロトアウトスタジオ&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/7c7925faf150fc608840d63309ee2c9e933c9827/original.jpg?1561535995&quot;,&quot;urlName&quot;:&quot;protoout-studio&quot;}},{&quot;score&quot;:11,&quot;node&quot;:{&quot;name&quot;:&quot;株式会社エイチームブライズ&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/b22c46bdbedb99dd5b28a9afa4246b462822150a/original.jpg?1509347496&quot;,&quot;urlName&quot;:&quot;brides-a-tm&quot;}},{&quot;score&quot;:9,&quot;node&quot;:{&quot;name&quot;:&quot;株式会社ZOZOテクノロジーズ&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/3125228ca91ca488ba9ed21c69f214cf23c3bb40/original.jpg?1538318109&quot;,&quot;urlName&quot;:&quot;zozotech&quot;}},{&quot;score&quot;:7,&quot;node&quot;:{&quot;name&quot;:&quot;BOOM TECH CAFE&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/0d3a5d6dc16a1ce2f12ece86141e50dfd8119186/original.jpg?1589648747&quot;,&quot;urlName&quot;:&quot;boomtechcafe&quot;}},{&quot;score&quot;:7,&quot;node&quot;:{&quot;name&quot;:&quot;転職クエスト&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/94217737be2a958c8d8af3f8cf88b1d02ebf4c6e/original.jpg?1599367938&quot;,&quot;urlName&quot;:&quot;tensyoku_quest&quot;}},{&quot;score&quot;:7,&quot;node&quot;:{&quot;name&quot;:&quot;運営者ギルド&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/3fd54146cf16402656ade1852e0d1bcbe8b30ad8/original.jpg?1570259460&quot;,&quot;urlName&quot;:&quot;admin-guild&quot;}},{&quot;score&quot;:7,&quot;node&quot;:{&quot;name&quot;:&quot;株式会社インプル&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/8d52f9a75fac189f7d7a723f1f7a790c6d013abd/original.jpg?1595832620&quot;,&quot;urlName&quot;:&quot;impl&quot;}},{&quot;score&quot;:6,&quot;node&quot;:{&quot;name&quot;:&quot;N 高等学校&quot;,&quot;logoUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-organization-image/3c15890d4bd9d46e3c77ab420bb4fd120aeba689/original.jpg?1525836432&quot;,&quot;urlName&quot;:&quot;nnn-school&quot;}}]},&quot;scope&quot;:&quot;WEEKLY&quot;}'},
             {'data-hyperapp-app': 'QiitaZineFeed',
              'data-hyperapp-props': '{}'},
             {'data-hyperapp-app': 'CommunitySponserList',
              'data-hyperapp-props': '{&quot;sponsers&quot;:[{&quot;alt&quot;:&quot;パソナテック&quot;,&quot;src&quot;:&quot;//cdn.qiita.com/assets/public/community-sponsers/005_pasona-0222c6e2b6546073800c90a8f0062349.png&quot;,&quot;link&quot;:&quot;https://www.pasonatech.co.jp/&quot;},{&quot;alt&quot;:&quot;Avanade&quot;,&quot;src&quot;:&quot;//cdn.qiita.com/assets/public/community-sponsers/008_avanade-fa6c44688ed11dc2f6f15b1d7ce9e3ce.png&quot;,&quot;link&quot;:&quot;https://www.avanade.com/ja-jp/careers&quot;},{&quot;alt&quot;:&quot;ガリレオスコープ&quot;,&quot;src&quot;:&quot;//cdn.qiita.com/assets/public/community-sponsers/009_shimane-itworks-51407c33af2be339823167bf379479df.png&quot;,&quot;link&quot;:&quot;https://shimane-itworks.jp/event/3314?utm_source=qiita\\u0026utm_medium=display\\u0026utm_content=logo_banner&quot;},{&quot;alt&quot;:&quot;CircleCI&quot;,&quot;src&quot;:&quot;//cdn.qiita.com/assets/public/community-sponsers/010_circleci-f1b29b31d4379d82989e2e4ea567575f.png&quot;,&quot;link&quot;:&quot;https://circleci.jp/signup/?utm_source=qiita\\u0026utm_medium=display\\u0026utm_content=sponsorlogo_Sep2020&quot;},{&quot;alt&quot;:&quot;wolfSSL&quot;,&quot;src&quot;:&quot;//cdn.qiita.com/assets/public/community-sponsers/011_wolfSSL-9559e8f3486340efb962d1e042ac7f29.jpg&quot;,&quot;link&quot;:&quot;https://www.wolfssl.jp/wearehiring/?r=qi&quot;}]}'}],
            'a': {'target': '_blank',
             'rel': 'noopener',
             'href': 'https://jobs.qiita.com/campaigns/celebration/2020aug?utm_source=qiita&amp;utm_medium=sidebar_top&amp;utm_campaign=jobseeker_202008',
             'img': {'style': 'margin-bottom: 16px;',
              'src': 'https://cdn.qiita.com/assets/public/qiita_jobs_celebration_2020aug/banner-300x200-b152f48111b22f752dcb998e44e9ae50.png'}}}]}}]}],
     'footer': {'id': 'globalFooter',
      'class': 'st-Footer',
      'div': [{'class': 'st-Footer_container',
        'div': [{'class': 'st-Footer_start',
          'div': [{'class': 'st-Footer_logo',
            'svg': {'viewbox': '0 0 426.57 130',
             'xmlns': 'http://www.w3.org/2000/svg',
             'circle': [{'cx': '167.08', 'cy': '21.4', 'r': '12.28'},
              {'cx': '216.33', 'cy': '21.4', 'r': '12.28'}],
             'path': [{'d': 'M250.81 29.66h23.48v18.9h-23.48z'},
              {'d': 'M300.76 105.26a22.23 22.23 0 01-6.26-.86 12.68 12.68 0 01-5.17-3 14.41 14.41 0 01-3.56-5.76 28 28 0 01-1.3-9.22V48.56h29.61v-18.9h-29.52V3.29h-20.17v83.34q0 11.16 2.83 18.27a27.71 27.71 0 007.7 11.2 26.86 26.86 0 0011.43 5.62 47.56 47.56 0 0012.34 1.53h15.16v-18zM0 61.7a58.6 58.6 0 015-24.21A62.26 62.26 0 0118.73 17.9 63.72 63.72 0 0139 4.78 64.93 64.93 0 0164 0a65 65 0 0124.85 4.78 64.24 64.24 0 0120.38 13.12A62 62 0 01123 37.49a58.6 58.6 0 015 24.21 58.34 58.34 0 01-4 21.46 62.8 62.8 0 01-10.91 18.16l11.1 11.1a10.3 10.3 0 010 14.52 10.29 10.29 0 01-14.64 0l-12.22-12.41a65 65 0 01-15.78 6.65 66.32 66.32 0 01-17.55 2.3 64.63 64.63 0 01-45.23-18A62.82 62.82 0 015 85.81 58.3 58.3 0 010 61.7zm21.64.08a43.13 43.13 0 0012.42 30.63 42.23 42.23 0 0013.43 9.09A41.31 41.31 0 0064 104.8a42 42 0 0030-12.39 42.37 42.37 0 009-13.64 43.43 43.43 0 003.3-17 43.77 43.77 0 00-3.3-17A41.7 41.7 0 0080.55 22 41.78 41.78 0 0064 18.68 41.31 41.31 0 0047.49 22a42.37 42.37 0 00-13.43 9.08 43.37 43.37 0 00-12.42 30.7zM331.89 78a47.59 47.59 0 013.3-17.73 43.22 43.22 0 019.34-14.47A44.25 44.25 0 01359 36a47.82 47.82 0 0118.81-3.58 42.72 42.72 0 019.26 1 46.5 46.5 0 018.22 2.58 40 40 0 017 3.84 44.39 44.39 0 015.71 4.63l1.22-9.47h17.35v85.83h-17.35l-1.17-9.42a42.54 42.54 0 01-5.84 4.67 43.11 43.11 0 01-7 3.79 44.86 44.86 0 01-8.17 2.59 43 43 0 01-9.22 1A47.94 47.94 0 01359 119.9a43.3 43.3 0 01-14.47-9.71 44.17 44.17 0 01-9.34-14.47 47 47 0 01-3.3-17.72zm20.27-.08a29.16 29.16 0 002.17 11.34 27 27 0 005.92 8.88 26.69 26.69 0 008.76 5.76 29.19 29.19 0 0021.44 0 26.11 26.11 0 008.72-5.76 27.57 27.57 0 005.88-8.84 29 29 0 002.16-11.38 28.62 28.62 0 00-2.16-11.22 26.57 26.57 0 00-5.93-8.8 27.68 27.68 0 00-19.51-7.9 28.29 28.29 0 00-10.77 2.05 26.19 26.19 0 00-8.71 5.75 27.08 27.08 0 00-5.84 8.8 28.94 28.94 0 00-2.13 11.31zm-194.97-30.5h19.78v73.54h-19.78zm49.25 0h19.78v73.54h-19.78z'}]}},
           {'class': 'st-Footer_catchcopy'},
           {'class': 'st-Footer_socials',
            'a': [{'class': 'fa fa-twitter',
              'href': 'https://twitter.com/qiita'},
             {'class': 'fa fa-facebook-square',
              'href': 'https://www.facebook.com/qiita/'}]}]},
         {'class': 'st-Footer_end',
          'div': [{'class': 'st-Footer_qiita',
            'div': [{'class': 'st-Footer_label'},
             {'class': 'st-Footer_list',
              'div': [{'class': 'st-Footer_column',
                'a': [{'href': '/about'},
                 {'href': '/terms'},
                 {'href': '/privacy'},
                 {'target': '_blank',
                  'href': 'http://help.qiita.com/ja/articles/qiita-community-guideline'},
                 {'href': '/release-notes'}]},
               {'class': 'st-Footer_column',
                'a': [{'href': '/api/v2/docs'},
                 {'href': '/feedback/new'},
                 {'href': 'https://help.qiita.com'},
                 {'target': '_blank',
                  'href': 'https://qiita.com/ads?utm_source=qiita&amp;utm_medium=referral&amp;utm_content=footer'}]}]}]},
           {'class': 'st-Footer_increments',
            'div': [{'class': 'st-Footer_label'},
             {'class': 'st-Footer_list',
              'div': [{'class': 'st-Footer_column',
                'a': [{'href': 'https://increments.co.jp/company/'},
                 {'href': 'https://increments.co.jp/jobs/'},
                 {'href': 'https://blog.qiita.com'}]},
               {'class': 'st-Footer_column',
                'a': [{'href': 'https://teams.qiita.com/'},
                 {'href': 'https://jobs.qiita.com?utm_source=qiita&amp;utm_medium=referral&amp;utm_content=footer'},
                 {'href': 'https://zine.qiita.com?utm_source=qiita&amp;utm_medium=referral&amp;utm_content=footer'}]}]}]}]}]},
       {'class': 'st-Footer_copyright'}]}},
    {'class': 'p-messages',
     'div': {'data-hyperapp-app': 'Message',
      'data-hyperapp-props': '{&quot;messages&quot;:[]}'}},
    {'id': 'dataContainer',
     'style': 'display: none;',
     'data-config': '{&quot;actionPath&quot;:&quot;public/home#index&quot;,&quot;settings&quot;:{&quot;analyticsTrackingId&quot;:&quot;UA-24675221-12&quot;,&quot;assetsMap&quot;:{},&quot;csrfToken&quot;:&quot;duV2y08R2thnFOLaqveARlH54dn/7sSG/e5hux4H7Mj0L/8LR99T7wSexCaPoLi79NO0aBqxUz76mZKqF0XvJA==&quot;,&quot;locale&quot;:&quot;en&quot;},&quot;currentUser&quot;:null}'}]}}}

出力を見るとトレンドの情報はdata-hyperapp-app="Trend"の属性を持ったdivタグのdata-hyperapp-props属性に入っていることが判るので、

trends = j.jq['data-hyperapp-app="Trend"'].data_hyperapp_props
trends

で取得できます。
Pythonの文法上ハイフンや空白はアンダーバーに置き換えてあります。

出力
out
'{&quot;trend&quot;:{&quot;edges&quot;:[{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T07:53:22Z&quot;,&quot;likesCount&quot;:202,&quot;title&quot;:&quot;オブジェクト指向は単なる【整理術】だよ&quot;,&quot;uuid&quot;:&quot;2aa9859d4da41991bbb7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163629/profile-images/1567829792&quot;,&quot;urlName&quot;:&quot;br_branch&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T03:08:08Z&quot;,&quot;likesCount&quot;:63,&quot;title&quot;:&quot;間違えて違うブランチで作業を始めてしまったときの対処法【Git】&quot;,&quot;uuid&quot;:&quot;dc21de47c617b0d0eebf&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675596/profile-images/1598685340&quot;,&quot;urlName&quot;:&quot;paleo_engineer&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:59:19Z&quot;,&quot;likesCount&quot;:71,&quot;title&quot;:&quot;CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明&quot;,&quot;uuid&quot;:&quot;656bac4c3871031a4448&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/79744/profile-images/1501125720&quot;,&quot;urlName&quot;:&quot;kaityo256&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T17:26:06Z&quot;,&quot;likesCount&quot;:54,&quot;title&quot;:&quot;Pythonでコンソールに綺麗なグラフを描画できる「AsciichartPy」使ってみた。&quot;,&quot;uuid&quot;:&quot;aff5c301aacb8513a11d&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/535270/3e59522dfca791fd0ce7f98d863a9a796ca95a16/large.png?1574159780&quot;,&quot;urlName&quot;:&quot;kkent030315&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T10:57:35Z&quot;,&quot;likesCount&quot;:37,&quot;title&quot;:&quot;スプラトゥーン2のプレイ動画から、やられたシーンだけをディープラーニングで自動抽出する&quot;,&quot;uuid&quot;:&quot;acbc0906046bb7b2b1db&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://avatars3.githubusercontent.com/u/16898831?v=4&quot;,&quot;urlName&quot;:&quot;tfandkusu&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T10:57:47Z&quot;,&quot;likesCount&quot;:31,&quot;title&quot;:&quot;データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です!&quot;,&quot;uuid&quot;:&quot;7d50ff180a4e5c294cb7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352395/profile-images/1557632578&quot;,&quot;urlName&quot;:&quot;ngtkana&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T09:35:58Z&quot;,&quot;likesCount&quot;:40,&quot;title&quot;:&quot;様々な日本語文章を、目線移動無く早く読めるオープンソースツール(Riot Shield)を公開しました&quot;,&quot;uuid&quot;:&quot;c7e48f9f9b3e937c5dad&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/85111/profile-images/1499606550&quot;,&quot;urlName&quot;:&quot;am_nimitz3&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T08:11:54Z&quot;,&quot;likesCount&quot;:20,&quot;title&quot;:&quot;自分のQiita記事をインクリメンタル検索するAlfred Workflowを作ってみた&quot;,&quot;uuid&quot;:&quot;6909b534a59d3550093e&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114396/profile-images/1596162182&quot;,&quot;urlName&quot;:&quot;ryo2132&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T06:43:05Z&quot;,&quot;likesCount&quot;:30,&quot;title&quot;:&quot;SQLアンチパターン\u3000ファントムファイル&quot;,&quot;uuid&quot;:&quot;cc811929485471897c89&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257405/profile-images/1585098105&quot;,&quot;urlName&quot;:&quot;fktnkit&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T08:22:19Z&quot;,&quot;likesCount&quot;:37,&quot;title&quot;:&quot;TypeScriptリポジトリの歩き方&quot;,&quot;uuid&quot;:&quot;a63882c4c42c6ccf8c66&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54872/profile-images/1573246604&quot;,&quot;urlName&quot;:&quot;sisisin&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T09:04:26Z&quot;,&quot;likesCount&quot;:19,&quot;title&quot;:&quot;Ractor超入門&quot;,&quot;uuid&quot;:&quot;f9d1917fda770bcdbe2a&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/191521/profile-images/1531325180&quot;,&quot;urlName&quot;:&quot;S_H_&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:32:05Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;SwiftUIとCombineの練習がてらmacOS向けのピアノアプリ作ってみた&quot;,&quot;uuid&quot;:&quot;0230a14ec6c3a8174568&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/67153/e88c7b2790238820700627c60482ade9228609f7/x_large.png?1575435001&quot;,&quot;urlName&quot;:&quot;Kyome&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:07:56Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;Raspberry PiにVS Code Insider版をインストールする方法&quot;,&quot;uuid&quot;:&quot;fb50b6ac5c175b9b1045&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/81919/profile-images/1549284868&quot;,&quot;urlName&quot;:&quot;karaage0703&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-10T16:01:19Z&quot;,&quot;likesCount&quot;:35,&quot;title&quot;:&quot;【JavaScript】Promiseくんと仲良くなろう&quot;,&quot;uuid&quot;:&quot;4af009c9b21c13d5a368&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/252036/profile-images/1548799764&quot;,&quot;urlName&quot;:&quot;al_tarte&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:14:11Z&quot;,&quot;likesCount&quot;:28,&quot;title&quot;:&quot;《コロナに負けず!!》29歳で営業職からジョブチェンジ。未経験で受託開発企業から内定を頂けました。&quot;,&quot;uuid&quot;:&quot;3eafbcc52c04241788a5&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/635167/4df257c74aac0acdbb03f0e7f63e276aa42830a0/x_large.png?1591368347&quot;,&quot;urlName&quot;:&quot;ki-ku&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-10T22:39:44Z&quot;,&quot;likesCount&quot;:24,&quot;title&quot;:&quot; scikit-learnで機械学習パイプラインをインタラクティブに描画、HTML保存する方法&quot;,&quot;uuid&quot;:&quot;55c7f567ca79b81c36ab&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/191401/185398f529f8156fed141d7b2e1b0a78fc114172/large.png?1599774000&quot;,&quot;urlName&quot;:&quot;sugulu_Ogawa_ISID&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T11:29:02Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;production-ready なGo製2Dゲームライブラリ Ebiten の紹介 \\u0026 リンク集&quot;,&quot;uuid&quot;:&quot;1fd6077327f99245b807&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348791/profile-images/1565355993&quot;,&quot;urlName&quot;:&quot;eihigh&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T00:49:28Z&quot;,&quot;likesCount&quot;:18,&quot;title&quot;:&quot;【翻訳】wordpressのプラグインで毎月5万収益を得ている話&quot;,&quot;uuid&quot;:&quot;ab1b2b6d5676dc55144b&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705937/profile-images/1599573315&quot;,&quot;urlName&quot;:&quot;kirishima_app&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T14:56:56Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;たった3行でVSCode(codeserver)をGoogle Colabで使う方法&quot;,&quot;uuid&quot;:&quot;ebcc8d51476f6f7c5b72&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24723/profile-images/1574818910&quot;,&quot;urlName&quot;:&quot;kojikanao&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T23:36:29Z&quot;,&quot;likesCount&quot;:13,&quot;title&quot;:&quot;Docker × Laravel 8 Jetstream でログイン、ユーザー登録、2要素認証を実装する&quot;,&quot;uuid&quot;:&quot;7824d1293fef4698c212&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/52879/profile-images/1540380605&quot;,&quot;urlName&quot;:&quot;ucan-lab&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T01:56:00Z&quot;,&quot;likesCount&quot;:12,&quot;title&quot;:&quot;PythonでDICOM画像を扱う&quot;,&quot;uuid&quot;:&quot;f145675055796c69e228&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/680528/4c5642d036920f85daf6640335027d9a0387cecc/x_large.png?1595678226&quot;,&quot;urlName&quot;:&quot;asparagasu&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T08:15:21Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;FlutterでTextFieldのフォーカスを正しく外す方法&quot;,&quot;uuid&quot;:&quot;d7fde1d998a30292add7&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.amazonaws.com/0/99169/profile-images/1473707726&quot;,&quot;urlName&quot;:&quot;tsukushibito&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T04:42:29Z&quot;,&quot;likesCount&quot;:10,&quot;title&quot;:&quot;量子GUIシミュレータ (QPlat)&quot;,&quot;uuid&quot;:&quot;95450143c8ed9a580f31&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/517405/23c55e72f59a70704447c7701ed83bb7994a1906/large.png?1571976772&quot;,&quot;urlName&quot;:&quot;KeiichiroHiga&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T14:02:08Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;【技術書典9】ゲーム関連技術頒布物(新刊)まとめ (2020/9/11 22:00 時点)&quot;,&quot;uuid&quot;:&quot;5f535164ee46f7e0c52d&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258608/profile-images/1566747392&quot;,&quot;urlName&quot;:&quot;takehara-ryo&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T13:08:53Z&quot;,&quot;likesCount&quot;:9,&quot;title&quot;:&quot;Unityで録音して、録音したサウンドを再生する最小実装&quot;,&quot;uuid&quot;:&quot;b3430e52574831afec92&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328771/profile-images/1595687179&quot;,&quot;urlName&quot;:&quot;ohbashunsuke&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T13:59:38Z&quot;,&quot;likesCount&quot;:25,&quot;title&quot;:&quot;Kubernetesの負荷試験で絶対に担保したい13のチェックリスト&quot;,&quot;uuid&quot;:&quot;56a5442c1fc4d714c941&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45875/profile-images/1595854294&quot;,&quot;urlName&quot;:&quot;taisho6339&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-12T08:48:31Z&quot;,&quot;likesCount&quot;:6,&quot;title&quot;:&quot;Prism の Prism Full App (.NET Core) テンプレートを見てみよう&quot;,&quot;uuid&quot;:&quot;cfbf5c9eaea6c5aed4e1&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/70288/edf16d4d4fdd1abcb3e61b06730b0609cdc77adb/x_large.png?1585128349&quot;,&quot;urlName&quot;:&quot;okazuki&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T07:26:47Z&quot;,&quot;likesCount&quot;:16,&quot;title&quot;:&quot;VSCode Live Share+Flutterでのリモートモブプログラミングの現状&quot;,&quot;uuid&quot;:&quot;08db86881da446d70646&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26446/profile-images/1581214874&quot;,&quot;urlName&quot;:&quot;hummer&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:false,&quot;hasCodeBlock&quot;:true,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-11T09:18:03Z&quot;,&quot;likesCount&quot;:8,&quot;title&quot;:&quot;簡易LISP処理系の実装例(JavaScript版)&quot;,&quot;uuid&quot;:&quot;2124d6ceba7f3a628a8c&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://pbs.twimg.com/profile_images/1247901639429640194/7IvBd3i7_bigger.jpg&quot;,&quot;urlName&quot;:&quot;ytaki0801&quot;}}},{&quot;followingLikers&quot;:[],&quot;isLikedByViewer&quot;:false,&quot;isNewArrival&quot;:true,&quot;hasCodeBlock&quot;:false,&quot;node&quot;:{&quot;createdAt&quot;:&quot;2020-09-13T01:57:50Z&quot;,&quot;likesCount&quot;:14,&quot;title&quot;:&quot;音声分析におけるフーリエ変換とスペクトログラムを理解する&quot;,&quot;uuid&quot;:&quot;6af2cc4c4be0c57bef06&quot;,&quot;author&quot;:{&quot;profileImageUrl&quot;:&quot;https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/651198/profile-images/1591512068&quot;,&quot;urlName&quot;:&quot;shirowanisan&quot;}}}]},&quot;scope&quot;:&quot;daily&quot;}'

この状態だと少し扱いづらいので、
&quot; → "
と置き換えてJSONとして読み込んでしまえば、

import json
json.loads(trends.replace("&quot;",'"'))

出力
out
{'trend': {'edges': [{'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T07:53:22Z',
     'likesCount': 202,
     'title': 'オブジェクト指向は単なる【整理術】だよ',
     'uuid': '2aa9859d4da41991bbb7',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163629/profile-images/1567829792',
      'urlName': 'br_branch'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T03:08:08Z',
     'likesCount': 63,
     'title': '間違えて違うブランチで作業を始めてしまったときの対処法【Git】',
     'uuid': 'dc21de47c617b0d0eebf',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675596/profile-images/1598685340',
      'urlName': 'paleo_engineer'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T13:59:19Z',
     'likesCount': 71,
     'title': 'CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明',
     'uuid': '656bac4c3871031a4448',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/79744/profile-images/1501125720',
      'urlName': 'kaityo256'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T17:26:06Z',
     'likesCount': 54,
     'title': 'Pythonでコンソールに綺麗なグラフを描画できる「AsciichartPy」使ってみた。',
     'uuid': 'aff5c301aacb8513a11d',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/535270/3e59522dfca791fd0ce7f98d863a9a796ca95a16/large.png?1574159780',
      'urlName': 'kkent030315'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T10:57:35Z',
     'likesCount': 37,
     'title': 'スプラトゥーン2のプレイ動画から、やられたシーンだけをディープラーニングで自動抽出する',
     'uuid': 'acbc0906046bb7b2b1db',
     'author': {'profileImageUrl': 'https://avatars3.githubusercontent.com/u/16898831?v=4',
      'urlName': 'tfandkusu'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T10:57:47Z',
     'likesCount': 31,
     'title': 'データ構造 Fenwick tree (binary indexed tree, BIT) にどっぷりと入門し、その美しき構造に心を洗われたい方のための紹介記事です!',
     'uuid': '7d50ff180a4e5c294cb7',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352395/profile-images/1557632578',
      'urlName': 'ngtkana'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-11T09:35:58Z',
     'likesCount': 40,
     'title': '様々な日本語文章を、目線移動無く早く読めるオープンソースツール(Riot Shield)を公開しました',
     'uuid': 'c7e48f9f9b3e937c5dad',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/85111/profile-images/1499606550',
      'urlName': 'am_nimitz3'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T08:11:54Z',
     'likesCount': 20,
     'title': '自分のQiita記事をインクリメンタル検索するAlfred Workflowを作ってみた',
     'uuid': '6909b534a59d3550093e',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114396/profile-images/1596162182',
      'urlName': 'ryo2132'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-11T06:43:05Z',
     'likesCount': 30,
     'title': 'SQLアンチパターン\u3000ファントムファイル',
     'uuid': 'cc811929485471897c89',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257405/profile-images/1585098105',
      'urlName': 'fktnkit'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T08:22:19Z',
     'likesCount': 37,
     'title': 'TypeScriptリポジトリの歩き方',
     'uuid': 'a63882c4c42c6ccf8c66',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54872/profile-images/1573246604',
      'urlName': 'sisisin'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T09:04:26Z',
     'likesCount': 19,
     'title': 'Ractor超入門',
     'uuid': 'f9d1917fda770bcdbe2a',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/191521/profile-images/1531325180',
      'urlName': 'S_H_'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T13:32:05Z',
     'likesCount': 13,
     'title': 'SwiftUIとCombineの練習がてらmacOS向けのピアノアプリ作ってみた',
     'uuid': '0230a14ec6c3a8174568',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/67153/e88c7b2790238820700627c60482ade9228609f7/x_large.png?1575435001',
      'urlName': 'Kyome'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T13:07:56Z',
     'likesCount': 13,
     'title': 'Raspberry PiにVS Code Insider版をインストールする方法',
     'uuid': 'fb50b6ac5c175b9b1045',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/81919/profile-images/1549284868',
      'urlName': 'karaage0703'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-10T16:01:19Z',
     'likesCount': 35,
     'title': '【JavaScript】Promiseくんと仲良くなろう',
     'uuid': '4af009c9b21c13d5a368',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/252036/profile-images/1548799764',
      'urlName': 'al_tarte'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': True,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-11T13:14:11Z',
     'likesCount': 28,
     'title': '《コロナに負けず!!》29歳で営業職からジョブチェンジ。未経験で受託開発企業から内定を頂けました。',
     'uuid': '3eafbcc52c04241788a5',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/635167/4df257c74aac0acdbb03f0e7f63e276aa42830a0/x_large.png?1591368347',
      'urlName': 'ki-ku'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-10T22:39:44Z',
     'likesCount': 24,
     'title': ' scikit-learnで機械学習パイプラインをインタラクティブに描画、HTML保存する方法',
     'uuid': '55c7f567ca79b81c36ab',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/191401/185398f529f8156fed141d7b2e1b0a78fc114172/large.png?1599774000',
      'urlName': 'sugulu_Ogawa_ISID'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T11:29:02Z',
     'likesCount': 13,
     'title': 'production-ready なGo製2Dゲームライブラリ Ebiten の紹介 & リンク集',
     'uuid': '1fd6077327f99245b807',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348791/profile-images/1565355993',
      'urlName': 'eihigh'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': True,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-12T00:49:28Z',
     'likesCount': 18,
     'title': '【翻訳】wordpressのプラグインで毎月5万収益を得ている話',
     'uuid': 'ab1b2b6d5676dc55144b',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705937/profile-images/1599573315',
      'urlName': 'kirishima_app'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T14:56:56Z',
     'likesCount': 14,
     'title': 'たった3行でVSCode(codeserver)をGoogle Colabで使う方法',
     'uuid': 'ebcc8d51476f6f7c5b72',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24723/profile-images/1574818910',
      'urlName': 'kojikanao'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T23:36:29Z',
     'likesCount': 13,
     'title': 'Docker × Laravel 8 Jetstream でログイン、ユーザー登録、2要素認証を実装する',
     'uuid': '7824d1293fef4698c212',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/52879/profile-images/1540380605',
      'urlName': 'ucan-lab'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T01:56:00Z',
     'likesCount': 12,
     'title': 'PythonでDICOM画像を扱う',
     'uuid': 'f145675055796c69e228',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/680528/4c5642d036920f85daf6640335027d9a0387cecc/x_large.png?1595678226',
      'urlName': 'asparagasu'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T08:15:21Z',
     'likesCount': 14,
     'title': 'FlutterでTextFieldのフォーカスを正しく外す方法',
     'uuid': 'd7fde1d998a30292add7',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.amazonaws.com/0/99169/profile-images/1473707726',
      'urlName': 'tsukushibito'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T04:42:29Z',
     'likesCount': 10,
     'title': '量子GUIシミュレータ (QPlat)',
     'uuid': '95450143c8ed9a580f31',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/517405/23c55e72f59a70704447c7701ed83bb7994a1906/large.png?1571976772',
      'urlName': 'KeiichiroHiga'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-11T14:02:08Z',
     'likesCount': 14,
     'title': '【技術書典9】ゲーム関連技術頒布物(新刊)まとめ (2020/9/11 22:00 時点)',
     'uuid': '5f535164ee46f7e0c52d',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258608/profile-images/1566747392',
      'urlName': 'takehara-ryo'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T13:08:53Z',
     'likesCount': 9,
     'title': 'Unityで録音して、録音したサウンドを再生する最小実装',
     'uuid': 'b3430e52574831afec92',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328771/profile-images/1595687179',
      'urlName': 'ohbashunsuke'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': True,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T13:59:38Z',
     'likesCount': 25,
     'title': 'Kubernetesの負荷試験で絶対に担保したい13のチェックリスト',
     'uuid': '56a5442c1fc4d714c941',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45875/profile-images/1595854294',
      'urlName': 'taisho6339'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': True,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-12T08:48:31Z',
     'likesCount': 6,
     'title': 'Prism の Prism Full App (.NET Core) テンプレートを見てみよう',
     'uuid': 'cfbf5c9eaea6c5aed4e1',
     'author': {'profileImageUrl': 'https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/70288/edf16d4d4fdd1abcb3e61b06730b0609cdc77adb/x_large.png?1585128349',
      'urlName': 'okazuki'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-11T07:26:47Z',
     'likesCount': 16,
     'title': 'VSCode Live Share+Flutterでのリモートモブプログラミングの現状',
     'uuid': '08db86881da446d70646',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26446/profile-images/1581214874',
      'urlName': 'hummer'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': False,
    'hasCodeBlock': True,
    'node': {'createdAt': '2020-09-11T09:18:03Z',
     'likesCount': 8,
     'title': '簡易LISP処理系の実装例(JavaScript版)',
     'uuid': '2124d6ceba7f3a628a8c',
     'author': {'profileImageUrl': 'https://pbs.twimg.com/profile_images/1247901639429640194/7IvBd3i7_bigger.jpg',
      'urlName': 'ytaki0801'}}},
   {'followingLikers': [],
    'isLikedByViewer': False,
    'isNewArrival': True,
    'hasCodeBlock': False,
    'node': {'createdAt': '2020-09-13T01:57:50Z',
     'likesCount': 14,
     'title': '音声分析におけるフーリエ変換とスペクトログラムを理解する',
     'uuid': '6af2cc4c4be0c57bef06',
     'author': {'profileImageUrl': 'https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/651198/profile-images/1591512068',
      'urlName': 'shirowanisan'}}}]},
 'scope': 'daily'}

無事トレンドの情報を得られました。

もう一度一連の流れをまとめて書くと、

getTrends.py
from html2json import *
import json

j = url2json("https://qiita.com/")
json.loads(j.jq['data-hyperapp-app="Trend"'].data_hyperapp_props.replace("&quot;",'"'))

_人人人人_
> 2行 <
 ̄Y^Y^Y^Y^ ̄

ちなみにQiitaのトップページの場合パースにかかる時間は5ms程度でした(Ryzen 5 3600)。

まとめ

使いみち次第では結構便利だと思うので使ってみてね。
(正規表現のバックスラッシュでQiitaのシンタックスハイライト崩れるの直らないかな...)

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3