2015-05-27 12 views
7

come posso ottenere valore di ingresso dalla pagina htmlCome ottenere il valore dell'input nascosto usando python?

come

<input type="hidden" name="captId" value="AqXpRsh3s9QHfxUb6r4b7uOWqMT" ng-model="captId"> 

ho input name [name = "captId"] e il bisogno del suo valore

import re , urllib , urllib2 
a = urllib2.urlopen('http://www.example.com/','').read() 

thanx


aggiornamento 1

Ho installato BeautifulSoup e usato, ma c'è qualche errore

codice

import re , urllib , urllib2 
a = urllib2.urlopen('http://www.example.com/','').read() 
soup = BeautifulSoup(a) 
value = soup.find('input', {'name': 'scnt'}).get('value') 

errore

"zuppa = BeautifulSoup (a) NameError: nome 'BeautifulSoup' non è definito"

+2

Si ottiene il valore di un input nascosto allo stesso modo si ottiene qualsiasi altro ingresso. – Barmar

+0

sì, ma quello che uso re.findall o re.search e come scrivere pattern true – IBRA

+0

BeautifulSoup dovrebbe essere quello che ti serve: prima devi selezionare il modulo, quindi i campi nascosti. –

risposta

4

L'uso del modulo re per analizzare xml o html è generalmente considerato una cattiva pratica. Usalo solo se si sono responsabili per la pagina che si tenta di analizzare. In caso contrario, le espressioni regex sono tremendamente complesse o il tuo script potrebbe interrompersi se qualcuno sostituisce <input type="hidden" name=.../> con <input name="..." type="hidden" .../> o quasi qualsiasi altra cosa.

BeautifulSoup è un parser HTML che:

  • corregge automaticamente gli errori minori (tag non chiusi ...)
  • costruire un albero DOM
  • consente di sfogliare l'albero, la ricerca di tag specifici, con attributi specifici
  • è utilizzabile con Python 2 e 3

a meno che non si hanno buone ragioni n Per farlo, dovresti usarlo invece di re per l'analisi HTML.

Per esempio ipotizzando che txt contiene l'intera pagina, trovare tutti i campi nascosti sarebbe semplice come:

from bs4 import BeautifulSoup 
soup = BeautifulSoup(txt) 
hidden_tags = soup.find_all("input", type="hidden") 
for tag in hidden_tags: 
    # tag.name is the name and tag.value the value, simple isn't it ? 
+0

grazie bro Potete darmi un esempio di usato BeautifulSoup – IBRA

+0

@IBRA Ci sono molti di loro in riferimento localizzati ... Ma vedere la mia modifica comunque –

+0

Ho aggiornato la domanda – IBRA

Problemi correlati