2016-07-11 5 views
0

pythonでrequest関数を使用してテキストファイルのテキストコンテンツをWebサイトに投稿しようとしています。 、結果をPythonに戻します。私はここや他のウェブサイトでいくつかの回答を読んだが、コードを新しいウェブサイトに正しく修正する方法はまだ分かっていない。pythonでrequest関数を使用してデータをWebサイトに送信し、応答を返す

私は美しいスープに精通していますので、ウェブページのコンテンツを引き出し、HTMLを削除することは問題ではありません。私が理解していないデータを提出することです。

現在、私のコードは次のとおりです。

import requests 

fileName = "texttoAnalyze.txt"   
fileHandle = open(fileName, 'rU'); 
url_text = fileHandle.read() 

url = "http://www.webpagefx.com/tools/read-able/" 
payload = {'value':url_text} 
r = requests.post(url, payload) 
print r.text 

このコードは、ウェブサイトのHTMLに戻ってくるが、私は、フォームを送信しようとしているという事実を認識していません。

何か助けていただければ幸いです。本当にありがとう。

+2

'URL = "http://www.webpagefx.com/tools/read-able/"' Webリンクであるが、ウェブページにリダイレクトすると、一部のデータを投稿するだけで必要な結果が得られない場合、リクエストを処理するためにウェブページが作成しているAPI呼び出しを掘り下げる必要があります(すべての主要ブラウザで要素の検査機能を使用して学ぶ)ヘッドレスウェブをPythonの 'Selenium'モジュールでサーフィンしてください – ZdaR

+0

@JonClements、投稿する第2引数はデータです –

+1

@Padraicあなたは正しいです - おそらく私はsometを考えています他のヒンジまたは別のユースケース –

答えて

0

ウェブサイトが送信しているのと同じリクエストを送信する必要があります。通常、ウェブデバッグツール(chrome/firefoxデベロッパーツールなど)でこれらを取得できます。この場合

要求がに送信されるURLは次のとおりです。次のparamsでhttp://www.webpagefx.com/tools/read-able/check.php

tab=Test+by+Direct+Link&directInput=SOME_RANDOM_TEXT

だからあなたのコードは次のようになります。

url = "http://www.webpagefx.com/tools/read-able/check.php" 
payload = {'directInput':url_text, 'tab': 'Test by Direct Link'} 
r = requests.post(url, data=payload) 
print r.text 

幸運を!

0

2つのポストパラメータ、タブDirectInputのあります

import requests 

post = "http://www.webpagefx.com/tools/read-able/check.php" 
with open("in.txt") as f: 
    data = {"tab":"Test by Direct Link", 
      "directInput":f.read()} 
    r = requests.post(post, data=data) 
    print(r.content) 
関連する問題