これは簡単なことです。私は自分のクエリに関連する有効な投稿の大部分を見ていて、それぞれのコードに適用するようにしましたが、何らかの理由で大したことはありません。美しいスープ| Python | URLルーピング
基本的に、私は何を達成しようとしていることは以下の通りです:
- ループはrealestate.com上の最初3ページを - 販売価格
- アドレスと販売価格
- 入れ値を取得します。
私が以下を(URLループなしで)チャンクで実行すると、1ページ目で動作します。最初の3ページを通過して20個のリストをすべて返す必要があります (1ページあたり)。
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"])
ERROR:はIndexError:範囲外のリストインデックス
私は紛れも何かを明らかに逃したことがありますか?
ご協力いただければ幸いです。
種類よろしく、 エイドリアン
を 'results_price'と' results_info'は、実際には3つのエントリかどうかを持っていますか?それをチェックしてください。 – campovski
こんにちは!両方の変数は20項目(過去20項目の売却)を返します。これに合わせて範囲を(3)から(20)に変更しましたが、それでも同じエラーが返されます。私は何が欠けているかに関する任意のアイデア?あなたはこれを実行できます - BeautifulSoup、Requests、Pandasを使ってPython 3.5を使って – AdrianC
'range(3)'を '[0,1,2]'に変換します。有効なウェブページに0の結果を代入してもよろしいですか? – Mangohero1