Da find
einen einzigen Tag gibt, müssen Sie find_all
:
for val in value_select.find_all("option")[1:]:
n = val['value']
print (n)
Oder eine CSS-Selektor verwenden, um die erste Option überspringen:
for val in value_select.select("option + option"):
Beide arbeiten gleich:
In [1]: import requests
In [2]: from bs4 import BeautifulSoup
In [3]: r = requests.get("http://www.nepalstock.com.np/marketdepthofcompany/238")
In [4]: soup = BeautifulSoup(r.content,"lxml")
In [5]: value_select = soup.select_one("select.form-control")
In [6]: for val in value_select.find_all("option")[1:]:
...: n = val['value']
...: print (n)
...:
ACEDBL
ACEDPO
ADBL
AHPC
ALDBL
ALDBLP
ALICL
ALICLP
APEX
APEXPO
API
ARDBL
ARDBLP
ARUN
ARUNPO
AVU
BARUN
BBBLNP
...................................
In [7]: for val in value_select.select("option + option"):
...: n = val['value']
...: print (n)
...:
ACEDBL
ACEDPO
ADBL
AHPC
ALDBL
ALDBLP
ALICL
ALICLP
APEX
APEXPO
API
ARDBL
ARDBLP
ARUN
ARUNPO
AVU
BARUN
BBBLNP
..........................
Um die Optionen zu erhalten, in denen die Werte eingegeben werden, wählen Sie die ID StockSymbol_Select2
gibt es mehr als eine select.form-control
so müssen Sie genau, welche man angeben:
import requests
from bs4 import BeautifulSoup
r = requests.get("http://www.nepalstock.com.np/marketdepthofcompany/238")
soup = BeautifulSoup(r.content,"lxml")
value_select = soup.select_one("#StockSymbol_Select2")
for val in value_select.select("option + option"):
print (val["value"])
, dass Sie, was Sie wollen:
In [13]: value_select = soup.select_one("#StockSymbol_Select2")
In [14]: for val in value_select.select("option + option"):
....: print (val["value"])
....:
216
294
397
360
406
660
385
599
262
666
697
..............................
Versuchte noch funktioniert beides nicht. das html folgt dieser Struktur und druckt nur die AECDBL, während ich 216 will. – mad
Ich lief den Code und beide funktionierten gut, so dass Sie etwas falsch machen müssen –
Sorry, wenn ich die Frage falsch. Das HTML folgt der folgenden Struktur. Daraus möchte ich die "216" nicht ACEDBL extrahieren. – mad