見出し画像

副収入5万円!メルカリ商品情報スクレイピングスクリプトで簡単自動化

割引あり

この記事は、クラウドワークスで品出しを人力で行っている方々に向けて、メルカリの特定のユーザーが販売中の商品情報を自動的に取得し、CSVファイルに保存するPythonスクリプトの解説を行います。このスクリプトを使用することで、商品の出品情報を効率的に収集し、手作業の手間を大幅に削減できます。

スクリプトの主なステップとその説明

ライブラリのインポート

  • 必要なPythonライブラリをインポートします。このスクリプトでは、ウェブスクレイピング(selenium, BeautifulSoup)、データ操作(pandas)、画像処理(PIL)、ファイル操作(os, glob, shutil)、その他(re, csv, time, requests, urllib.parse.urljoin)を使用します。

初期設定

  • メルカリの特定ユーザープロフィールのURLを設定し、商品情報を保存するための空のリストを作成します。

url = 'https://jp.mercari.com/user/profile/930376259?status=on_sale'
pagination = []  # 次のボタンのhrefを保存
souptable = []  # 各ページのソースを保存
gazo = [["price", "link", 'image']]  # 商品情報を保存するリスト

ウェブドライバの設定

  • ChromeのWebDriverを設定し、ヘッドレスモード(GUIなし)でブラウザを操作します。

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)

ウェブページの取得

  • WebDriverを使用してメルカリのユーザープロフィールページにアクセスし、ページのHTMLを取得します。

driver.get(url)
time.sleep(2)
soupsrc = BeautifulSoup(driver.page_source, 'html.parser')
driver.close()
souptable.append(soupsrc)

商品情報のスクレイピング

  • BeautifulSoupを使用してHTMLから商品情報を抽出します。商品の価格、リンク、画像のURLを取得し、価格が40,000円以下の商品を対象とします。

次のページへの移動

  • ページ下部の「次へ」ボタンのリンクを取得し、そのリンク先のページに移動します。この操作をすべてのページに対して繰り返します。

エラーハンドリング

  • スクレイピング中にエラーが発生した場合に備えて、try-exceptブロックを使用します。エラーが発生した場合、スクリプトはエラーメッセージを出力し、次の商品に移動します。

データの保存

  • スクレイピングした商品情報をCSVファイルに保存します。同じ商品情報が重複して保存されないように、pandasのdrop_duplicates関数を使用します。

path = r'C:\path\to\save\mercarin.csv' 
with open(path, "w", encoding='utf-8-sig') as f:
    writecsv = csv.writer(f, lineterminator='\n')
    writecsv.writerows(gazo)

df = pd.read_csv(path, encoding='utf-8-sig')
df = df.drop_duplicates()
df.to_csv(path, encoding='utf-8-sig', index=False)
print("CSVに保存完了")

写真投稿用フォルダの作成

  • スクレイピングした商品の画像を保存するためのフォルダを作成します。

import os
import shutil
import pandas as pd

path = r'C:\Users\Owner\Desktop\work_current\sorce\mercarin.csv'
df = pd.read_csv(path, encoding='utf-8-sig')
image_urls = df['image']
image_path = r"C:\Users\Owner\Desktop\work_current\image"

# フォルダの作成と初期化
os.makedirs(image_path, exist_ok=True)
shutil.rmtree(image_path)
os.mkdir(image_path)

# 画像ごとのフォルダを作成
for url in image_urls:
    time.sleep(1) 
    folder_name = url.split('/photos/')[-1].split('.')[0].replace('_1', '')
    path_photo = os.path.join(image_path, folder_name)
    os.makedirs(path_photo, exist_ok=True)
print("写真投稿用フォルダ作成済")

注意点

  • ウェブスクレイピングの合法性: ウェブスクレイピングはウェブサイトの利用規約により制限される場合があるため、使用する際には注意が必要です。

  • HTML構造の変更: このスクリプトは特定のHTML構造に依存しているため、メルカリのウェブサイトのデザインが変更された場合、スクリプトを更新する必要があります。

まとめ

このスクリプトを使用することで、メルカリの特定のユーザーが販売している商品の情報を効率的に収集し、手作業の手間を大幅に削減できます。さらに、商品の画像を整理するためのフォルダも自動的に作成できます。クラウドワークスで品出しを人力で行っている方々にとって、
大きな助けになることでしょう。

近々、もっとブレークダウンして、誰でもこのコードの意味を理解できるようにしたいと思います。

寄付のお願い

最後に、この記事が役に立ったと感じた方、もし可能であれば寄付をお願いします。いただいた寄付は、さらに役立つ情報を提供するための活動資金として大切に活用させていただきます。皆さんのご支援が、より多くの方々の健康と幸せに繋がります。どうぞよろしくお願いいたします。中の過食を防ぐことができます。ぜひ試してみてください!

ここから先は

0字 / 1画像

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?