2016-12-24 11 views
0

firefoxブラウザでjavascriptコンソールを使用して、spotify(私がフォローしているアーティストのリスト)のリストからテキストデータを抽出しようとしています。私は、「タイトル」クラスでの要素からすべてのアーティスト名を抽出するために、このコードを使用しています:javascriptを使用してウェブサイトからデータを抽出します。

残念ながら
artists = document.getElementsByClassName('title') 

、Firefoxで私が唯一のアーティストとは何の関係も持た​​ないことを4ランダム要素を取得します。しかし、それが動作するクロムで、私はすべてのアーティスト名を出力としてリストを取得します。 ただし、最初にinspector関数を使用して1つの要素を選択した後は、にしかなりません。

不幸にも、ChromeがスポットギアのWebページを正しく読み込まないため、リストが不完全です。 Firefoxのjavascriptコンソールを使ってこの作業を行うにはどうしたらいいですか?

Spotifyのウェブページと関係があるのは、アカウントにログインした後にしか表示されない可能性があります。 ありがとうございます。

+0

セレクタ特異性の問題があると思います。あなたはURLを提供することができますか、またはこれを実行しようとしている画面にアクセスするための手順? – Ivan

+0

私はhttps://play.spotify.com/userに行き、ログインして「マイアカウント」に移動し、「フォロー」をクリックします。私が従うすべてのアーティストのリストを示しています。それから私は下にスクロールし、リストの多くが読み込まれます。私は完全なリストがロードされるまでスクロールし続けます(1500人以上のアーティスト) – janj

+0

Chromeでは、リストの読み込みが途中で停止します。コードを実行すると、約900のアーティスト名が付けられます。 Firefoxでは、コードはまったく機能しません(4つの無関係な結果を除いて)。 – janj

答えて

0

この作品のようなものはありますか?

var all = document.querySelectorAll('.following .title'); 
all.forEach(function(item) { console.log(item.innerHTML) }) 

これをコンソールで実行すると、次のようなことが起こります。もちろん、各テキストアイテムを新しい配列に追加して、それを使って何かを行うことができます。

Followed artists in Spotify web player console

+0

もう少し見ると、そのコンテンツはiframeに存在するため、正しいフレームでコードを実行していることを確認する必要があります。 また、forEach用のブラウザサポートは不自由です。その部分を旧式のループ、ブラウザのバージョンに応じて書き換える必要があるかもしれません。 – Ivan

+1

ありがとうございます。このコードは素晴らしいです。そして、実際にiframeがfirefoxの問題でした。再度、感謝します – janj

関連する問題