Parse JavaScript href cu Python

Aveam multe probleme cu acest ... nou pentru Python, așa că îmi pare rău dacă nu cunosc termenii potriviți de căutare pentru a-mi găsi informațiile. Nici măcar nu sunt pozitiv, din cauza JS, dar asta e cea mai bună idee pe care o am.

Iată secțiunea de HTML parcurg:

...
<div class="promotion">
    <div class="address">
        5203 Alhama Drive
    </div>
</div>
...

... și Python-ul pe care îl folosesc pentru a face acest lucru (această versiune este cea mai apropiată am reușit):

homeFinderSoup = BeautifulSoup(open("homeFinderHTML.html"), "html5lib")
addressClass = homeFinderSoup.find_all('div', 'address')
for row in addressClass:
    print row.get('href')

... care se întoarce

None
None
None
0
Aveau probleme cu navigarea în copac și listele mă aruncau de pește. Stabiliți-mi direcția potrivită, totuși, mulțumesc.
adăugat autor Z J Rollyson, sursa
Fără a sapa în docs sau orice altceva, se pare că codul dvs. iteră prin toate divs cu adresa de clasă și căutând o proprietate href, pe care nu o au. Va trebui să obțineți toate etichetele de ancorare din interiorul acelor divs și să căutați proprietatea href a THOSE pentru a obține ceea ce căutați.
adăugat autor Collin Green, sursa

1 răspunsuri

# Create soup from the html. (Here I am assuming that you have already read the file into
# the variable "html" as a string).
soup = BeautifulSoup(html) 
# Find all divs with class="address"
address_class = soup.find_all('div', {"class": "address"})
# Loop over the results
for row in address_class:
  # Each result has one  tag, and we need to get the href property from it.
  print row.find('a').get('href')
0
adăugat
Asta merge, excelent, mulțumesc. Încerca .find_all() înainte, nu funcționează.
adăugat autor Z J Rollyson, sursa
Python România
Python România
100 participanți

Comunitatea pasionaților de Python din România.