Webスクレイピングコードの一部をRからPythonに変換しています(geckodriverをRで動作させることはできませんが、Pythonで動作します)。とにかく、PythonでHTMLテーブルを解析して読む方法を理解しようとしています。ここでは、Rのためのコードです。Selenium PythonでHTMLを解析してHTMLテーブルを読む
doc <- htmlParse(remDr$getPageSource()[[1]],ignoreBlanks=TRUE, replaceEntities = FALSE, trim=TRUE, encoding="UTF-8")
WebElem <- readHTMLTable(doc, stringsAsFactors = FALSE)[[7]]
私はHTMLページをdocオブジェクトに解析します。その後、私はdoc[[1]]
で始まり、私が望むデータが見えるまで大きな数字を移動します。この場合、私はdoc[[7]]
に行き、私が望むデータを見た。私はそのHTMLテーブルを読んでWebElemオブジェクトに割り当てます。最終的には、これをデータフレームに変換して再生します。
だから私はPythonでやっていることはこれです:
html = None
doc = None
html = driver.page_source
doc = BeautifulSoup(html)
それから私はdoc.get_text
と遊ぶことを始めたが、私は本当に私が見たいだけのデータを取得する方法がわかりません。私が見たいデータは、10x10のマトリックスのようなものです。私がRを使用したときは、doc[[7]]
を使用して、その行列をデータフレームに変換するための完全な構造になっていました。しかし、私はPythonでそれをすることはできません。アドバイスをいただければ幸いです。
はUPDATE: - :Python Web-Scraping
私は、私は、Pythonを使って必要なデータを取得することができた私は、Pythonでのデータフレームを作成するためのこのブログに従いました。そのブログで取り組んでいるウェブサイトは次のとおりです:Most Popular Dog Breedsそのブログ記事では、要素を練習し、辞書を作成し、テーブルの各行をループし、各列にデータを格納してからデータフレームを作成する必要があります。 R、私がいた書かなければならなかった唯一のコードで
:ちょうどそれと
doc <- htmlParse(remDr$getPageSource()[[1]],ignoreBlanks=TRUE, replaceEntities = FALSE, trim=TRUE, encoding="UTF-8")
df <- as.data.frame(readHTMLTable(doc, stringsAsFactors = FALSE)
、私は列名のみを調整する必要がかなりいいのデータフレームを持っており、データタイプ - それはちょうどそのコードを次のようになります。
NULL.V1 NULL.V2 NULL.V3 NULL.V4 1 BREED 2015 2014 2013 2 Retrievers (Labrador) 1 1 1 3 German Shepherd Dogs 2 2 2 4 Retrievers (Golden) 3 3 3 5 Bulldogs 4 4 5 6 Beagles 5 5 4 7 French Bulldogs 6 9 11 8 Yorkshire Terriers 7 6 6 9 Poodles 8 7 8 10 Rottweilers 9 10 9
Pythonでこれをもっと簡単にするためのものはありませんか?Rはデータフレーム用に構築されているので(これは少なくとも私には見えますが、間違っている可能性があります)
最も重要なアドバイス - 常にあなたのデータにURLを追加してください。すべてのページが異なっており、アドバイスを提供するためにHTMLを参照する必要があります。 – furas
こんにちは@furas、私はそれを追加しましたが、プライベートURLです。私はこれが難しいことを知っている。私のポストで似たような行列を作るのが助かるでしょうか? –
HTMLを例として追加することができれば便利です。 – furas