2017-06-08 15 views
1

BeautifulSoupを使用してテーブルを掻き集める際に問題が発生しています。私は右の私は、ソースを表示するときただしのid =「合計」が唯一の要素がコメントアウトされ、私が期待するようなHTMLに見える要素を検査するためにテーブルをクリックするとここに私のコードはPython BeautifulSoupがテーブルIDを見つけることができません

from urllib.request import urlopen 
from bs4 import BeautifulSoup 

site = "http://www.sports-reference.com/cbb/schools/clemson/2014.html" 
page = urlopen(site) 
soup = BeautifulSoup(page,"html.parser") 

stats = soup.find('table', id = 'totals') 

In [78]: print(stats) 
None 

です。コメント付きのソースコードからテーブルを掻き取る方法はありますか?

私はthis postを参照していますが、解決策を複製できないようです。

私が興味を持っているのはlink to the webpageです。「合計」というラベルの付いた表を削り取り、データフレームとして保存したいと考えています。

私は、Python、HTML、およびWebスクレイピングに比較的新しいです。どんな助けでも大歓迎です。

ありがとうございます。

マイケル

+0

あなたが掻き取ろうとしているHTMLソースの関連部分を含めるように回答を更新してください。自己完結型の質問が必要です。 – Soviut

答えて

1

コメントはBeautifulSoupの文字列インスタンスです。 BeautifulSoupのfindメソッドを正規表現で使用すると、後に続く特定の文字列を見つけることができます。文字列を取得したら、BeautifulSoupでそれを解析してください。言い換えれば

import re 
from urllib.request import urlopen 
from bs4 import BeautifulSoup 

site = "http://www.sports-reference.com/cbb/schools/clemson/2014.html" 
page = urlopen(site) 
soup = BeautifulSoup(page,"html.parser") 

stats_html = soup.find(string=re.compile('id="totals"')) 
stats_soup = BeautifulSoup(stats_html, "html.parser") 

print(stats_soup.table.caption.text) 
+0

完璧に動作します。 –

0

あなたはこれを行うことができます。

from urllib2 import * 
from bs4 import BeautifulSoup 

site = "http://www.sports-reference.com/cbb/schools/clemson/2014.html" 
page = urlopen(site) 
soup = BeautifulSoup(page,"lxml") 

stats = soup.findAll('div', id = 'all_totals') 
print stats 

私が助け場合はお知らせ下さい!

+0

答えはid = totalsのdivにはアクセスできません。 id = all_totalsのものを取得します。そこには埋め込まれたdivがありますが、まだコメントであり、コメントはほとんど使用できません。実際にあなたのソリューションを使っているdivだけを印刷してみてください。あなたは、この質問で尋ねられることを得るために、コメントを使って作業する必要があります。 – clockwatcher

関連する問題