希望這是一個容易的。我已經瀏覽了大部分與我的查詢相關的有效帖子(並從每個代碼片段中獲取了代碼片段),以便將其應用到我自己的代碼中,但出於某種原因,我沒有太多運氣。美麗的湯| Python | URL循環
從本質上講,我想要實現的是以下幾點:
- 遍歷上realestate.com第3頁 - 出售價格
- 獲取地址與出售價格
- 認沽值到熊貓DataFrame
如果我執行下面的塊(沒有URL循環),它適用於頁1。我需要的是它通過前三頁,並返回所有20列表 (每頁)。
empty_list = []
for page_number in range(3):
url_test = "https://www.realestate.com.au/sold/list-{}?activeSort=solddate".format(page_number)
r = requests.get(url_test)
soup = BeautifulSoup(r.text, "html.parser")
results_price = soup.find_all('span', attrs={'class':'property-price'})
results_info = soup.find_all('div', attrs={'class':'property-card__info'})
raw_html1 = results_price[page_number]
clean_price = raw_html1.text
raw_html2 = results_info[page_number]
street = raw_html2.find('a').text
empty_list.append((street, clean_price))
df = pd.DataFrame(empty_list, columns=["Address", "Sold_Price"])
錯誤:IndexError:列表索引超出範圍
我錯過了什麼昭然若揭?
任何幫助將不勝感激。
親切的問候, 阿德里安
做'results_price'和'results_info'實際上有3項或不?檢查出。 – campovski
你好!這兩個變量都會返回20個條目(最後20個物業出售)。我已經改變了從(3)到(20)的範圍來匹配這個,但它仍然返回相同的錯誤。任何想法,我失蹤了什麼?你可以運行這個 - 使用Python 3.5使用BeautifulSoup,Requests和Pandas – AdrianC
'range(3)'轉換爲'[0,1,2]'。你確定在有效的網頁中代入0結果嗎? – Mangohero1