Python3初学者です。
ヤフオクのデータをスクレイピングするサンプルを作ってみました。
商品名、価格、落札日を取得できたのでDataFrameを使ってCSV形式にしたかったのですがうまくできませんでした。
できたこと
・最後の1件のみDataFrameで表示(画像)
できなかったこと
・残りのデータはDataFrameで表示されず。
1件だけでなく全てのデータをDataFrameに入れたいです。
よろしくお願いします。
※DataはDataFrameに入れていません。
from bs4 import BeautifulSoup import requests import numpy as np from pprint import pprint import pandas as pd # ヤフオク-> ブランド別 -> 価格が高い順 html_doc = requests.get("https://auctions.yahoo.co.jp/closedsearch/closedsearch?p=1%E5%86%86&auccat=23172&va=1%E5%86%86&b=1&n=20&select=2").text # BeautifulSoupの初期化 soup = BeautifulSoup(html_doc, 'html.parser') # 商品名 titles = soup.find_all("h3", {"class": "Product__title"}) for title in titles: print (title.a.string) # 落札価格 prices = soup.find_all("span", {"class": "Product__priceValue"}) for price in prices: print (price.string) # 日付 datas = soup.find_all("span", {"class": "Product__time"}) for data in datas: print (data.string) Title = (title.a.string) Price = (price.string) Data = (data.string) columns = ["Title", "Price"] # 列名を指定する df1 = pd.DataFrame(columns=columns) # 行を作成 se = pd.Series([Title, Price], columns) # データフレームに行を追加 df1 = df1.append(se, columns) df1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。