目次
序文
Alibaba Foreclosure は、中国本土で有名なオンライン オークション ウェブサイトであり、さまざまな商品やサービスのオークション、固定価格取引、固定価格販売を提供しています。Ali Foreclosure Web サイトから製品名、価格、写真などの製品情報を取得したい場合は、Python を使用してこのデータを取得するコードを作成できます。
実装する前に、次の Python ライブラリとツールがインストールされていることを確認してください。
- リクエスト: Ali Foreclosure Web サイトに HTTP リクエストを送信し、応答コンテンツを取得するために使用されます。
- beautifulsoup4: HTML Web ページのコンテンツを解析し、データを抽出するために使用されます。
- pandas: データテーブルの作成とデータの整理に使用されます。
これらの手順を完了すると、Python コードの作成を開始できるようになります。
データ取得コードの実装
ステップ 1: 宛先 URL を取得する
この例では、Alibaba Foreclosure Web サイト上の指定された製品のページにアクセスし、この製品に関する情報を取得します。まずこの製品の URL を見つけて、後で使用できるように記録する必要があります。この例では、この製品の URL を取得します。
https://sf-item.taobao.com/sf_item/69947813772.htm
実際のアプリケーションでは、必要に応じてさまざまな製品の URL を取得する必要があります。
ステップ 2: ターゲット URL にリクエストを送信し、応答コンテンツを取得する
次に、Python のリクエスト ライブラリを使用して、Ali Foreclosure Web サイトに HTTP リクエストを送信し、応答コンテンツを取得します。まず、サーバーがリクエストを認識できるように、HTTP リクエストのヘッダー情報 (Headers) を設定する必要があります。
# 设置Headers
headers = {
'User-Agent': 'Mozilla/5.0'}
# 发送HTTP请求并获取响应内容
url = 'https://sf-item.taobao.com/sf_item/69947813772.htm'
page = requests.get(url, headers=headers)
上記のコードでは、単純な User-Agent ヘッダーを設定し、Mozilla ブラウザーを使用していることをサーバーに伝えます。次に、リクエスト ライブラリを使用して GET リクエストを送信し、Ali Foreclosure Web サイト上の指定された製品の Web コンテンツを取得し、応答コンテンツを「page」変数に保存します。
ステップ 3: Web コンテンツを解析して製品情報を抽出する
製品ページの HTML コンテンツを取得したので、そこから製品情報を抽出する必要があります。この例では、製品の名前、価格、画像、説明情報を抽出してみます。
# 解析网页内容并提取商品信息
soup = BeautifulSoup(page.content, 'html.parser')
item_name = soup.find_all('h3', class_='title')[0].get_text().strip()
item_price = soup.find_all('span', class_='price')[0].get_text().strip()
item_picture = soup.find_all('img', class_='og-image')[0]['src'].strip()
item_desc = soup.find_all('div', class_='desc desc-more')[0].get_text().strip()
ここでは、Python の BeautifulSoup4 ライブラリを使用して製品ページの HTML コンテンツを解析し、さまざまなタグや属性値を通じて必要な製品情報を見つけます。各オブジェクトについて、text プロパティまたは label プロパティを使用して値を取得し、strip() メソッドを使用してオブジェクトからスペースと改行を削除します。
ステップ 4: 製品情報を DataFrame に保存する
製品ページからさまざまな製品情報を取得したら、Python の pandas ライブラリを使用して情報を DataFrame 形式に整理し、CSV ファイルに保存するなどの操作を実行できます。
# 将商品信息保存到DataFrame中
auction_dict = {
'Name': [item_name],
'Price': [item_price],
'Picture': [item_picture],
'Description': [item_desc]
}
auction_df = pd.DataFrame(auction_dict)
ここでは、製品情報のキーと値のペアを含む「auction_dict」という名前の Python 辞書を作成します。
製品情報をデータベースに保存
データを MySQL データベースに保存する場合は、Python で MySQL Database API を使用してデータベースに接続し、データを追加する必要があります。以下は、Python を MySQL に接続し、Ali の差し押さえ製品情報を MySQL データベースに保存するサンプル コードです。
ステップ 1: MySQL コネクタをインストールする
Python で MySQL データベースを使用するには、MySQL コネクタをインストールする必要があります。これは、次のコマンドを使用してインストールできます。
pip install mysql-connector-python
ステップ 2: MySQL データベースに接続する
まず、MySQL データベースに接続してカーソルを取得する必要があります。
# 导入MySQL Connector
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
# 获取游标
mycursor = mydb.cursor()
「yourusername」、「yourpassword」、「mydatabase」をデータベースのユーザー名、パスワード、データベース名に置き換えてください。
ステップ 3: データベーステーブルを作成する
次に、製品情報を保存するためのデータベース テーブルを作成する必要があります。以下は、データベース テーブルを作成するコード例です。
# 创建表格
mycursor.execute("CREATE TABLE IF NOT EXISTS auctions (name VARCHAR(255), price VARCHAR(255), picture VARCHAR(255), description VARCHAR(255))")
ここでは、「auctions」というテーブルを作成し(テーブルがすでに存在する場合、再度作成することはありません)、製品名、製品価格、製品画像、製品説明の 4 つの列を定義します。
ステップ 4: データを挿入する
製品情報を MySQL データベースに保存する準備ができました。以下は、製品情報を MySQL データベースに保存するコード例です。
# 插入数据
sql = "INSERT INTO auctions (name, price, picture, description) VALUES (%s, %s, %s, %s)"
val = (item_name, item_price, item_picture, item_desc)
mycursor.execute(sql, val)
# 提交数据到数据库
mydb.commit()
ここでは、上記のコードで取得した MySQL カーソル mycursor を使用して、データの挿入操作を実行します。バッチ挿入を使用して単一のデータを挿入し、製品名、製品価格、製品画像、製品説明をタプルとして MySQL Execute メソッドに渡します。
なお、実際のアプリケーションでは、データベースの接続方法や利用方法に応じて、独自のコードを記述する必要があります。