2017-08-11 2 views
1

"stoken" valueを引っぱっているうちに、私のスクリプトが何らかの理由でそれらの行を数えていないように見えることに気付きました。 05cd3840である必要がありますが、代わりに1を返します。なぜこれが盗まれた値を引き出すために指定する必要がありますか?インデックス '[0]'が正しい値を引き出していませんか?

<form class="search" action="https://www.randomsite.com;" method="get" name="search"> 
     <div class="searchBox"> 
      <input type="hidden" name="stoken" value="5CDE3840" /> 
<input type="hidden" name="lang" value="1" /> 
      <input type="hidden" name="cl" value="alist"> 

       <input type="hidden" name="stoken" value="5CDE3840" /> 
<input type="hidden" name="lang" value="1" /> 
       <input type="hidden" name="cnid" value="500036" /> 
<input type="hidden" name="listtype" value="list" /> 
<input type="hidden" name="actcontrol" value="details" /> 

       <input type="hidden" name="cl" value="details"> 
       <input type="hidden" name="aid" value="15763" id="aid"> 
       <input type="hidden" name="anid" value="15763"> 
       <input type="hidden" name="parentid" value="15763"> 
       <input type="hidden" name="panid" value=""> 
           <input type="hidden" name="fnc" value="tobasket"> 
         </div>  

コード -

s = requests.session() 
url = "https://www.randomsite.com" 
response = s.post(url) 

soup = BeautifulSoup(response.text,"lxml") 
inputs = soup.find_all("input",{"type":"hidden"}) 
stoken = inputs[0]["value"] 
cnid = inputs[3]["value"] 
aid = inputs[7]["value"] 
anid = inputs[8]["value"] 
parentid = inputs[9]["value"] 
print("STOKEN: ", stoken) 
print("CNID: ", cnid) 
print("AID: ", aid) 
print("ANID: ", anid) 
print("PARENTID: ", parentid) 

出力 -

STOKEN: 1 
CNID: 500036 
AID: 15763 
ANID: 15763 
PARENTID: 15763 
+0

はHTMLです実行時に 'response.text'と同じものを投稿しましたか?私はここに2つの 'stoken'があることがわかります。 – lincr

+0

ええ、それは2つのストーリーラインを持っていないどちらもカウントするようです。投稿されたhtmlは私からスープ –

+0

を印刷してくれて、それは私のためにうまくいきました。 'stoken'が印刷されています。私は、HTMLファイルにテキストを保存してそれを読み込まなければならなかった以外は、同じコードを使用しました。 –

答えて

1

あなたはすなわち、関連するタグを選択するには '名前' 属性を使用することができます。

stoken = soup.find("input", {"name":"stoken"})['value'] 
cnid = soup.find("input", {"name":"cnid"})['value'] 
aid = soup.find("input", {"name":"aid"})['value'] 
anid = soup.find("input", {"name":"anid"})['value'] 
parentid = soup.find("input", {"name":"parentid"})['value'] 
+0

私はこのフォーマットが私が上記を使用していたよりもはるかに良く、それを感謝する –

関連する問題