2016-03-19 12 views
2

私の2日目は、pythonで、ウェブスクレイピングを学ぼうとしています。onSubmit = "return func();を持つフォームを送信するpython 3.xを使用して

私が自動的に検索のためのパラメータを入力し、私は

<form name="search" method="POST" action="index.php" onSubmit="return Search();"> 

URLからデータをスクラップしようとしているWebページでフォームを助けてきたが、フォームがonSubmit()を使用しているので、私はどのように把握することはできませんPythonを使用してそれを提出する。以前はすべてを完了させるためにurllib.requestを使用していました。

+1

あなたがリンクを共有することはできますか?ほとんどの可能性のあるリクエストは、あなたがしたいことをすることができます –

+0

http://edulix.com/unisearch/index.php?&ap=0&pr=1&ma=5&te=0&ye=0 – tarunuday

答えて

0

ウェブページに含まれるjavascriptを実行するには、Seleniumのようなものを使用する必要があります。これにより、ブラウザ全体をエミュレートし、javascriptに依存するこのようなフォームを送信することができます。もう1つの選択肢はSpynnerです。

もう1つの方法は、Search()のjavascriptソース(または手動でフォームを送信するときにブラウザでPOSTを監視する)を調べて、どのデータがjavascriptによってどこに投稿されているかを判断することです。おそらく、Pythonで同じリクエストをエミュレートすることができます。あなただけのフォームデータをポストする必要が

+0

セレン以外の何か?私は、pythonだけを使って、あるいは何とかhtml/jsをpythonで構文解析してプロセスをバイパスしたいと考えていましたが、もう一度pythonを初めて使っています。 – tarunuday

+0

@plungeheadそれは本当にどのようにjavascript重いサイトに依存します。私はいくつかの他の選択肢で私の答えを更新しました。 – Suever

0

、私はは大学院応用プログラムによって検索で大学院によって検索でに適用選んだ - > MSターム - >主な秋 - >インダストリアル・エンジニアリング年 - > 0:あなたがコンテンツを見ればお分かりのように

import requests 

data = {"bygradschool": "1","status": "0", "add_univ": "0", 
     "byappln": "1", "g_prog": "1", "g_major": "8", 
     "g_term": "1", "g_year": "0", "gre_total": "0", 
     "gre_quant": "0", "gre_verb": "0", 
     "agre_range": "0", "sub_search": "Search"} 
p = requests.post("http://edulix.com/unisearch/index.php", data) 
print(p.content) 

返さそれは正確ですあなたのブラウザで。フォームデータとリクエストも放火犯やクロムで見ることができます。

enter image description here

関連する問題