

[PythonでAPIで取得したJSONをデータフレーム化したい](https://ja.stackoverflow.com/questions/63096/python%e3%81%a7api%e3%81%a7%e5%8f%96%e5%be%97%e3%81%97%e3%81%9fjson%e3%82%92%e3%83%87%e3%83%bc%e3%82%bf%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e5%8c%96%e3%81%97%e3%81%9f%e3%81%84?noredirect=1#comment69092_63096)  
の続きです。

以下のコードで、iについて数値でループさせても同じページが取れてしまいます。  
これを回避する方法はありますでしょうか。それとも非対応でしょうか？

[code]

    hb_count = 'http://api.b.st-hatena.com/entrylist/json?sort=count&page='+str(i)
    
[/code]

また、JSON内のデータの順番(count,
linkなど）が順番が一定しないです。（データフレーム化のときに問題を引き起こしているわけではないので別に良いのですが気になります。）

どうぞよろしくお願いいたします。


CC BY-SA 4.0
2020-02-17T08:04:21.773
63112
2020-02-17T13:53:25.347
12457
question
python json pandas api
PythonでAPIで複数ページに渡るデータ取得


はてなブックマーク API では取得可能なエントリ数が固定されている様なので、Web スクレイピングで行ってみました。予め BeautifulSoup
パッケージをインストールしておいて下さい。

**get_entry.py**

[code]

    import requests
    import json
    from bs4 import BeautifulSoup
    
    def get_entry(url, num_page):
      entry = []
      for p in range(num_page):
        r = requests.get(
          hb_count, params={ 'url': url, 'sort': 'count', 'page': p+1 })
        soup = BeautifulSoup(r.content, 'html.parser')
        for s in soup.select('div.entrylist-contents-main'):
          atr = s.select('h3.entrylist-contents-title a')[0]
          cnt = s.select('span.entrylist-contents-users a span')[0].text
          entry.append({
            'title': atr['title'], 'url': atr['href'], 'count': cnt })
    
      return json.dumps(entry)
    
    if __name__=='__main__':
      hb_count = 'https://b.hatena.ne.jp/entrylist'
      url = 'https://newspicks.com/'
      num_page = 3
    
      json_data = get_entry(url, num_page)
      print(json_data)
    
[/code]

**実行結果**

[code]

    $ python3 get_entry.py | jq '.'
    
    [
      {
        "title": "グーグルが採用面接で聞く質問リストとは",
        "url": "https://newspicks.com/news/951070/body",
        "count": "1035"
      },
      {
        "title": "元社員らに聞く「エバーノートはなぜ深刻な状況に陥ったのか」(前編)",
        "url": "https://newspicks.com/news/1237596/body/",
        "count": "854"
      },
      {
        "title": "【新】先進国一、勉強しない日本の会社員に明日はあるのか？",
        "url": "https://newspicks.com/news/2647674/",
        "count": "581"
      },
                                :
                                :
    
[/code]


CC BY-SA 4.0
2020-02-17T13:53:25.347
63124
2020-02-17T13:53:25.347
63112
answer