2017-05-22 18 views
2

a websiteからデータを抽出しようとしています。Webスクラップ用のPythonループ

私が書いたコードは

import csv 

import requests 

from bs4 import BeautifulSoup 

page = requests.get("http://www.realcommercial.com.au/sold/property-offices- 
    retail-showrooms+bulky+goods-land+development-hotel+leisure+medical+consulting-other-in-wa/list-1?includePropertiesWithin=includesurrounding&activeSort=list-date&autoSuggest=true") 

soup = BeautifulSoup(page.content, 'html.parser') 

Address_1 = soup.find('p', attrs ={'class' :'details-panel__address'}) 

Address = Address.text.strip() 

である私が取得しています結果は、1件の物件のアドレスは1行だけです

'GF 255 Adelaide TerracePerth, WA 6000' 

です。

p class="details-panel__address" data-reactid="90"><span class="details- 
panel__address-text text-truncate" data-reactid="91">GF 255 Adelaide 
Terrace</span><span class="details-panel__address-text text-truncate" data- 
reactid="92">Perth, WA 6000</span></p 

    p class="details-panel__address" data-reactid="122"><span class="details- 
panel__address-text text-truncate" data-reactid="123">369-371 Oxford 
Street</span><span class="details-panel__address-text text-truncate" data- 
reactid="124">Mount Hawthorn, WA 6016</span></p>, 

    p class="details-panel__address" data-reactid="148"><span class="details- 
panel__address-text text-truncate" data-reactid="149">2 Lloyd Street</span> 
<span class="details-panel__address-text text-truncate" data- 
reactid="150">Midland, WA 6056</span></p>, 

    p class="details-panel__address" data-reactid="172"><span class="details- 
panel__address-text text-truncate" data-reactid="173">Bluenote Building, 16/162 
Colin Street</span><span class="details-panel__address-text text-truncate" 
data-reactid="174">West Perth, WA 6005</span></p>, 

    p class="details-panel__address" data-reactid="196"><span class="details- 
panel__address-text text-truncate" data-reactid="197">Bluenote Building, 10/162 
Colin Street</span><span class="details-panel__address-text text-truncate" 
data-reactid="198">West Perth, WA 6005</span></p> 

は、私は、プロパティの型、販売日、販売価値、地域、代理店名アドレスに関する情報を抽出するために何をすべきかを提案してください:

私はsoup.find_allを使用しています

は、私のような結果を取得しています、代理店の名前&電話このページのすべてのリスティングの番号。また、ループを使って特定のページの各リスティングを開き、情報を取得する方法もわかりません。

答えて

3

soup.find_all戻り値のリスト。テキストを取得するには、要素のリストを反復してtext属性のテキストを抽出する必要があります。

import requests 

from bs4 import BeautifulSoup 

page = requests.get("""http://www.realcommercial.com.au/sold/property-offices- 
    retail-showrooms+bulky+goods-land+development-hotel+leisure+medical+consulting-other-in-wa/list-1?includePropertiesWithin=includesurrounding&activeSort=list-date&autoSuggest=true""") 

soup = BeautifulSoup(page.content, 'html.parser') 

Address_1 = soup.find_all('p', attrs ={'class' :'details-panel__address'}) 
address_list = [ address.text.strip() for address in Address_1] 
print(address_list) 
links = soup.find_all('a', attrs ={'class' :'details-panel'}) 
hrefs = [link['href'] for link in links] 
print(hrefs) 
# Now iterate through the list of urls and extract the required data 
+0

ヒマンシュ、 –

+0

あなたは私がどのように私は、各リストを開く&そのリンク内のデータを取得するためにループを使用できることを知っているようにもしてくださいすることができますありがとうございましたか! –

+0

何か方法はありますか?ループを作成して各リスティングを開き、そこから情報を抽出することはできますか? –

関連する問題