対私はサービスにカールポスト要求をしています:カールが要求パイソン3
curl -v --data "cp4=2765&cp3=350&method%3AsearchPC2=Procurar" https://www.ctt.pt/feapl_2/app/open/postalCodeSearch/postalCodeSearch.jspx
我々はレスポンスボディに結果をdiv要素があるので、私は、それが成功した見ることができます:
...
<div class="highlighted-result text-left">
<h4 class="subheader">Rua Sacadura Cabral</h4>
<h4 class="subheader">Ímpares de 11 a 233</h4>
<h3 class="subheader">Galiza</h3>
<h2>2765-350 ESTORIL</h2>
</div>
...
を
有線の事は、私のpython +リクエストでそれを行う場合は、上記のカールがないとして、それは私に期待される結果が得られていないということです、私もカールと同じにユーザーエージェントを設定しようとしました:
import requests as r
headers_p = {
'User-Agent': 'curl/7.47.0',
'Host': 'www.ctt.pt'
}
payload = {'cp4': 2765, 'cp3': 350, 'method':'', 'searchPC2': 'Procurar'}
req_p = r.post('https://www.ctt.pt/feapl_2/app/open/postalCodeSearch/postalCodeSearch.jspx', data=payload)
print(req_p.text) # doesn't have the the same content as the curl, I need the html block above
しかし、それはサーバーが私に結果htmlブロックを送信しないでください
'headers = {'Content-Type': 'application/xml'}'このスニペットを 'r.post'の一部として' headers = headers'として渡します。あなたが出力を得ているかどうかを見てください。 – Haranadh
ありがとう@ハラナード。ノップ、うまくいきませんでした。 curlは動作するもので、リクエストヘッダに 'Content-Type:application/x-www-form-urlencoded'を送信します。 –
レスポンスオブジェクトを印刷してデータを見ることができます。私は 'python3'でも実行できます。私はいくつかのデータを見ることができます。しかし、結果の一部として特定のhtmlコンテンツを見ることはできません。私のpythonバージョンは 'Python 3.4.3'で、venvにインストールされています。 – Haranadh