2012-05-29 2 views
0

У меня много проблем с этим ... новичок в Python, так что извините, если я просто не знаю правильных условий поиска, чтобы найти информацию самостоятельно. Я даже не уверен, что это из-за JS, но это лучшая идея.Parse JavaScript href с Python

Вот раздел HTML я разборе:

... 
<div class="promotion"> 
    <div class="address"> 
     <a href="javascript:PropDetail2('57795471:MRMLS')" title="View property detail for 5203 Alhama Drive">5203 Alhama Drive</a> 
    </div> 
</div> 
... 

... и Python я использую, чтобы сделать это (эта версия ближе я получил к успеху):

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

... который возвращает

None 
None 
None 
+3

Без рытье I в документах или что-то еще, похоже, что ваш код выполняет итерацию через все div с адресом класса и ищет свойство href, которого у них нет. Вам нужно будет получить все привязанные теги внутри этих div и искать свойство href THOSE, чтобы получить то, что вы ищете. –

+0

Если у вас возникли проблемы с навигацией по дереву, списки списывали меня. Дай мне правильное направление, спасибо. –

ответ

0
# 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 <a> tag, and we need to get the href property from it. 
    print row.find('a').get('href') 
+0

Это работает, отлично, спасибо. Пробовал .find_all() раньше, не работает. –