2017-06-22 11 views
0

私は特定のウェブサイト上のすべてのテーブルを掻き集める方法を探しています。テーブルはすべてのサブページで全く同じにフォーマットされています。問題は、これらのサブページのURLがこのようになっていることです。
url1 = 'http .../Tom'、
url2 = 'http .../Mary'、
url3 = 'http .../Jason 'のように、URLを徐々に変更してループを設定することはできません。パンダでこれを解決する方法はありますか?パンダを使用して複数のWebページでhtmlテーブルをスクラップすることはできますか?

+0

あなたがたURLがどうなるか事前に知っていますか:

その後、完全なコードは次のようなものでしょうか?あなたはどこにURLを取得していますか? – jarcobi889

+0

スクラップで 'pandas'をどうやって使いますか? –

+0

pd.read_html()メソッドの使用を試みることはできますが、ページの例がなくても何かを具体的に示唆することは難しいです。だから、あなたは例を挙げることができますか? – omdv

答えて

0

もう一つのアイデアは、最初のBeautifulSoupライブラリを使用してWebページからすべてのtableの要素を取得し、その後、私は、各ページ内のデータが実際にHTML table要素としてフォーマットされていることを前提としています、とすることができpd.read_html()

0

適用するのだろうパンダによって処理されます。

df = pd.read_html(url, header=0)[0] 

またはこの:;(。テーブルはHTML table要素ではないように見えるもちろん、多くのページが表示され、それをチェックすることにもある)

そして、一つのテーブルを処理するコードは、この本を見えるかもしれません。

df = pd.read_html(url)[0] 

私は各ページに関心のあるテーブルが1つだけあると仮定しています。実際には、read_htmlという他のパラメータを変更する必要があるかもしれません。

stub_url = 'http:// ...' 
dfs = [] 
for ending in ['Tom', 'Mary', 'Jason']: 
    one_df = pd.read_html(stub_url + ending, header=0)[0] 
    dfs[ending] = one_df 
+0

それを感謝します。残念ながら、私はあなたのコードに従っていますが、それは以下のように戻ります:リストインデックスは、strではなく整数またはスライスでなければなりません。 –

+0

申し訳ありません、今すぐお試しください。 –

関連する問題