2016-12-12 1 views
0

すべてのタグを見つけることができません。ページには14のテーブルがありますが、コードの戻り値は2です。何が起こっているのか分かりません。私は手動でHTMLを検査し、それがなぜ機能していないのかの理由を見つけることができません。各テーブルについて特別なものはないようです。BeautifulSoup(BS4)が、私は次のコードは、指定されたウェブサイトからのすべてのテーブルを取得しませんPythonの3.5を使用してBS4</p> <p>てる

import bs4 
import requests 

link = "http://www.pro-football-reference.com/players/B/BradTo00.htm" 

htmlPage = requests.get(link) 
soup = bs4.BeautifulSoup(htmlPage.content, 'html.parser') 
all_tables = soup.findAll('table') 
print(len(all_tables)) 

何が起こっているのですか?

編集:私は明確にする必要があります。スープ変数を調べると、私は見たいテーブルをすべて含んでいます。 findAllメソッドを使用してスープからこれらのテーブルを抽出できないのですか?

+0

表がAjax経由でロードされているかどうかを確認してください。 – mushfiq

+0

このページはJavaScriptを使用してデータを表示していますが、おそらくすべてのデータはHTMLで記述されていますがコメント化されています。 BSを使って 'comment'タグを探したり、文字列関数(または正規表現)を使って' 'を見つけようとしたり、BSでこの文字列を使うことができます。 – furas

答えて

2

このページはjavascriptでレンダリングされ、javascripを無効にすると、このページには2つのテーブルしか表示されません。 この状況でセレンを使用することをお勧めします。

+0

私は、すべてのjavascriptとajaxリクエストがロードされた後にhtmlを取得したと仮定していました。私が「スープ」変数を検査したとき、すべてのテーブルがそこにありました。それは、私がajaxリクエストが行われた後にデータを取得していることを証明していませんか? – wjrhee

+0

リクエストはそれを行うことはできませんが、セレンなどを使用していて、すべてのテーブルを含むスープを取得した場合、ページがjavascripによってレンダリングされた後にデータを取得することが証明されます –

+0

私はスープのすべてのテーブルを参照してください。しかし、とにかく、セレンを使用して働いた。ありがとうございました! – wjrhee

関連する問題