私はbeautifulsoupを使って基本的なテキストの掻き取りを行ってきましたが、このページ(http://reference.wolfram.com/language/ref/BarChart.html)では、問題のテキストが画像としてフォーマットされています。個々のコマンド(例:BarChart [{1、2、3}])をクリックしてコピーして手動で貼り付けることもできますが、コードの一部。Pythonを使用してこのページからコマンドをスクラップする方法はありますか?
答えて
これはやり過ぎかもしれないが、あなたはseleniumを使用することができ、基本的にマウスクリックのアクションを自動化し、バックのPythonにコピーしたテキストを取得するためにクリップボードパッケージを使用していますが。目安は次のようになります。
from selenium import webdriver
import clipboard
driver = webdriver.Chrome()
driver.get("http://reference.wolfram.com/language/ref/BarChart.html")
#get all the image elements
elem: = driver.find_elements_by_tag_name("img")
#click and paste
text_list = []
for elem in elems:
#clicking on the image element
elem.click()
#get text from clipboard
text = clipboard.paste()
#check if text is empty
if text != "":
text_list.append(text)
私はこれはおそらくそれを行うための最善の方法ではありません、言ったように、あなたは簡単な方法がありますかどうかを確認するために、ウェブサイト上のclipboard.js
ファイルに見ることができます。それが役に立てば幸い。
ページとやりとりしているときにブラウザの開発ツールを見ると、image/text要素の1つ上にマウスを置くと、その要素のテキストを読み込むように要求されます。したがって、これらの値をすべて取得するには、テキストごとに1つのリクエストを行う必要があります。 URLはすべて次のようになります。http://reference.wolfram.com/language/ref/Files/BarChart.en/i_5.txt
まずは、これらのリクエストをすべて生成する方法を見つける必要があります。彼らはすべて奇妙な値(i_1.txt
、i_3.txt
など)のように見え、それはdiv
のIDに対応しています。
これらはあなたに見栄えのテキストを与えていないけれども、マークアップの多くを持っているとテキストがエスケープされています
<pre name='i_5_in' id='i_5_in' class='IFT'>
BarChart[{{1, 2, 3}, {1, 3, 2}, {5, 2}},
ChartLabels -> {"a", "b", "c"}]
</pre><div class='IFU'>
<a name='408182431'></a>http://wolfram.com/xid/0cq0nbvj-g1a1u5</div>
カップルの人が指摘したように、Javascriptを開始しているところclipboard.js
であり、これらの要求を処理することができます。要素のイベントリスナーをチェックするか、要求のイニシエータスタックをたどってトレースすることで、そこにアクセスできます。これには、それらをスクラップするPython関数を書くために使うことができるいくつかの行があります。 PyQuery(docs)というライブラリがあります。これにより、HTML上のjQueryライクなセレクタを使用して、これを高速化できます。
- 1. beautifulsoupとpythonを使用して複数のページでサイトをスクラップする方法はありますか?
- 2. Pythonを使用してWebページから広告をスクラップ
- 3. Rを使用してフレーム内のウェブサイトからデータをスクラップする方法はありますか?
- 4. Jauntライブラリを使用してウェブサイトからデータをスクラップする方法はありますか?
- 5. PHPを使用してWebページをスクラップする方法は?
- 6. JavaScriptのエフェクトを使用してページをスクラップする方法
- 7. jQueryとXPathでWebページをスクラップする方法はありますか?
- 8. Facebookのグループからコンテンツをスクラップする方法はありますか?
- 9. Pythonを使用してjsp Webページのコンテンツをスクラップする
- 10. ソースコードから変数データをスクラップする方法はありますか?
- 11. 同じcsv行の複数のページからデータをスクラップする方法はありますか?
- 12. C#.NETでは、ajax Webページから動的データをスクラップする方法はありますか?
- 13. pythonで複数のwikipediaページからデータをスクラップする方法は?
- 14. <select>オプションをJavaScriptを使用してページ1からページ2に渡す方法はありますか?
- 15. pythonを使用してレイジーローディング画像をスクラップする方法
- 16. JSON/WebページのJavascriptからデータをスクラップする方法は?
- 17. ウェブサイトから複数のページをスクラップする方法は?
- 18. ウェブページを使用しているときにjavascriptをスクラップする方法はありますか?
- 19. JavaScriptを使用してフレーム内のページからindex.htmlのタイトルを変更する方法はありますか?
- 20. スクラップを使用して曲をスクラップする方法
- 21. beautifulSoupを使用してウェブサイトからフォームをスクラップする方法は?
- 22. VBAを使用してウェブサイトからデータをスクラップする方法は?
- 23. Javaを使用してASP Webサイトからデータをスクラップする方法は?
- 24. javascriptを使用してサイトから画像をスクラップする方法は?
- 25. 次のページをスクラップするためにPythonのスクラップを使用するコメント
- 26. スクラップを使用してメインスクリプトからスクラップしたアイテムを取得する方法は?
- 27. Scrapyを使用して複数のページをスクラップする方法は?
- 28. Iron Pythonスクリプトを使用してスポットファイアテーブルの列から値を取得する方法はありますか?
- 29. オプションを使用してfindコマンド内のif条件を使用する方法はありますか?
- 30. PythonスクリプトからPOSTを使用してファイルを送信する方法はありますPythonスクリプト
どうすればよいですか?はいあります。 – zwer
ページが読み込まれるスクリプトを見て、そのようなクリックごとに呼び出される 'load_copy_text()'を見つけて理解してください。多分掻き取りは必要ではないかもしれません。 – 9000