2017-05-11 10 views
5

से कुछ तत्वों को स्क्रैप नहीं कर सकता मैं ज़िलो वेबसाइट की सामग्री को स्क्रैप करने का प्रयास कर रहा हूं।ज़िलो वेबसाइट

पूर्व- https://www.zillow.com/homedetails/689-Luis-Munoz-Marin-Blvd-APT-508-Jersey-City-NJ-07310/108625724_zpid/

समस्या मैं कीमत और कर इतिहास की सामग्री को स्क्रैप नहीं कर सकते हैं। मैंने सोचा था कि पेज लोड होने पर वे जावास्क्रिप्ट तत्व लोड हो रहे हैं और इसलिए सेलेनियम का उपयोग करने की कोशिश की लेकिन मैं अभी भी उन्हें प्राप्त नहीं कर सकता। मैंने जो कोशिश की है उसके बाद।

कोड

phistory = soup.find("div",{"id": "hdp-price-history"}) 
print phistory 

एचटीएमएल

<div class="loading yui3-widget yui3-async-block yui3-complaintstable yui3-hdppricehistory yui3-hdppricehistory-content" id="hdp-price-history"> 
    div class="zsg-content-section zsg-loading-spinner_lg"></div> 
</div> 

यह सबसे बाहरी तत्व है, लेकिन किसी भी तत्व inside.Also की कोशिश की soup.find_all("table",class_ = "zsg-table yui3-toggle-content-minimized") जो कोई भी पैदावार नहीं है।

+0

आप स्क्रेपर कोड पोस्ट कर सकते हैं? –

+0

प्रासंगिक कोड ऊपर शामिल है। –

उत्तर

3

आप जब तक <table> उत्पन्न की आवश्यकता है और दिखाई बन प्रतीक्षा करने के लिए कोशिश कर सकते हैं:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait as wait 
from selenium.webdriver.support import expected_conditions as EC 

driver.get("https://www.zillow.com/homedetails/689-Luis-Munoz-Marin-Blvd-APT-508-Jersey-City-NJ-07310/108625724_zpid/") 
table = wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//div[@id="hdp-price-history"]//table'))) 
print(table.text) 

आउटपुट:

DATE EVENT PRICE $/SQFT SOURCE 
05/03/17 Listed for sale $750,000+159% $534 KELLER WILLIAM... 
06/15/11 Sold $290,000-38.3% $206 Public Record 
10/14/05 Sold $470,000 $334 Public Record 

आप भी इसे BeautifulSoup का उपयोग किए बिना पार्स कर सकते हैं, उदाहरण के लिए

print(table.find_element_by_xpath('.//td[text()="Listed for sale"]/following::span').text) 

आउटपुट:

$750,000 

या

print(table.find_element_by_xpath('.//td[text()="Sold"]/following::span').text) 

आउटपुट:

$290,000 
+0

धन्यवाद एंडर्सन! –

+0

मैं यहां एक ही तकनीक का उपयोग करने की कोशिश कर रहा हूं [लिंक] (https://www.zillow.com/homedetails/1102-Woodland-Ave-Pittsburgh-PA-15212/11498396_zpid/) लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। मैंने आईडी और तत्व का उपयोग करने का भी प्रयास किया। निम्नलिखित है कि मैंने 'प्रतीक्षा = वेबड्राइवरवेट (ब्राउज़र, 20) तालिका = wait.until (EC.visibility_of_element_located ((द्वारा .XPATH, '// अनुभाग [@ id =" yui_3_18_1_2_1494945298474_1290 "] // table'))) ' –

+0

' सेक्शन' की आईडी आईडी गतिशील है (प्रत्येक बार जब आप पृष्ठ को रीफ्रेश करते हैं तो यह बदल जाता है), इसलिए आप इसे 'XPath' में उपयोग नहीं कर सकते हैं। '// h2 [text() = "मूल्य इतिहास"]/निम्नलिखित-भाई :: तालिका' – Andersson