2017-08-11 69 views
1

我在拉動"stoken" value時遇到了問題,我注意到我的腳本似乎沒有計算這些行是因爲什麼原因而跳過它們。 0應該是5cd3840,而是返回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'發佈了相同的內容?我可以看到這裏有兩個'stoken'。 – lincr

+0

是的,它有2個似乎不算數的stoken線。我張貼的HTML是從我印刷湯 –

+0

它爲我工作得很好。正在打印「stoken」。我使用了相同的代碼,除了我必須將文本保存在html文件中並閱讀它。 –

回答

1

您可以使用 'name' 屬性來選擇相關的變量,即:

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

我喜歡這種格式比我上面使用的好得多,欣賞它 –