2017-08-31 16 views
0

pythonの世界への挑戦。私はcodeacademyコースをやっていて、スタックとYouTubeを通ってトラウリングしましたが、私は解決できない問題にぶつかりました。掻き出しWikipediaのテーブル結果が得られません

私はウィキペディアにあるテーブルを簡単に印刷しようとしています。私自身のコードを書くのに間違いなく失敗しました。私はチュートリアルの例を使いビルドすることに決めました。しかし、これは動作していないと私はなぜか霧のようなアイデアはありません。

これは適切なリンクが含まれているコードです。私の最終結果は空のリスト "[]"です。 PyCharm 2017.2、beautifulsoup 4.6.0、要求2.18.4 &、Python 3.6.2を使用しています。何かアドバイスをいただきました。参考までに、チュートリアルのウェブサイトはhere

import requests 
from bs4 import BeautifulSoup 

WIKI_URL = "https://en.wikipedia.org/wiki/List_of_volcanoes_by_elevation" 

req = requests.get(WIKI_URL) 
soup = BeautifulSoup(req.content, 'lxml') 
table_classes = {"class": ["sortable", "plainrowheaders"]} 
wikitables = soup.findAll("table", table_classes) 

print(wikitables) 
+0

'table_classes = {" class ":" sortable "、" plainrowheaders "}}'から 'table_classes = {" class ":" sortable "}'に変更しますか? – SMA

+0

運がない、同じ結果です。 –

+0

申し訳ありませんが、私はそれをリストとして作成しないと意味しませんでした。上記の私の編集されたjsonを参照してください。 – SMA

答えて

1

です。これは、正規表現を使用して行うことができます。

  1. あなたはrequests.get(WIKI_URL).content
  2. てサイトコンテンツを取得ウィキペディアはHTMLでテーブルを提示方法を確認するために、サイトのソースコードを参照してください。
  3. テーブル全体に適合する正規表現を見つけます(<table>(?P<table>*+?)</table>のようなものかもしれません)。これは、<table></table>トークンの間に何かを得るものです。良いdocumentationとPythonの正規表現。 re.findall()をご覧ください。
  4. これでテーブルのデータが残っています。正規表現を使用して各行のデータを取得し、各行で正規表現を使用して列を取得することができます。 re.findall()がもう一度キーです。
+0

これがあります。時間を割いて式を見つけて、私のコンソールに人生を戻しました。かなりテーブルを持っていないが、私はあなたに知らせる。 –

関連する問題