kenji_Abe
@kenji_Abe

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

初心者です、スクレイピングで困っています

解決したいこと

本の課題に取り組んでいまして、ルンバ980のメルカリとラクマで最安値をスクレイピングしたいのですが、ラクマは価格を拾って表示できるのですが、メルカリだけがどうしても拾ってこれません。

image.png
image.png
image.png
image.png

自分で試したこと

検証のセレクターでコピーしているタグが違うのか色々試したのですが、どうしてもうまくできません。
本では、#メルカリはこちらのセレクターでもOK:'.items-box-price',
と書いてあったので、'.items-box-price'部分を使ってみたのですが、ダメでした。

どなたか方法とできなかった原因について初心者の私に解説していただけると助かります。

追記 
SurferOnWww@SurferOnWww さん アドバイスありがとうございます

robots.txtでメルカリの情報収集の拒否を確認をして禁止されている場所などが表示されていますが、このコードの部分が記載されているタグの場所はスクレイピング禁止という認識なのですが、価格の部分が該当するのか判断できていません。
disallow: に記載されているコードが検証などで見た時になければ問題ないという認識でよろしいのでしょうか?

image.png

追記
megchandesu@megchandesuさん 
本は「文系でも初めてでも稼げる プログラミング副業入門 2021第3版」
p214~228 課題6フリマサイトから最安値を入手してみよう
の課題に取り組んでいました。

0

5Answer

前提として、メルカリの利用規約等でスクレイピングが禁止されていないことを確認してください。

下記スクショで囲った場所で、マウスの右クリック → コピー → selector か xpath のコピーで取得した文字列を指定してみたらどうでしょうか?

HTML.png

0Like

Comments

  1. @kenji_Abe

    Questioner

    nak435@nak435 さん 早速のアドバイスありがとうございます

    マウスの右クリック → コピー → selector
    '#m49577922678 > figure > div.overlayContent__a6f874a2 > div > span'
    xpath のコピー
    '//*[@id="m49577922678"]/figure/div[3]/div/span'

    試してみたのですが、やはり「見つかりません」と表示されてしまいます。

  2. beautifulsoupでxpathから要素を取得するには、ひと工夫いるようです。

  3. @kenji_Abe

    Questioner

    @nak435さん 重ねてありがとうございます。
    beautifulsoup4の使い方なのですね、後ほどトライしてみたいと思います!
    上手くできない場合はまた質問させていただくかもしれません、、

スクレイピングは、サイトの管理者に許可を得ているとか、規約に従って専用の API にアクセスしているとかでなければ、迷惑行為になるかもしれないということは認識してますか?

クローラーを作って某図書館サイトにアクセスしたら業務妨害とかで逮捕された事例もありますので、甘く見ない方がいいと思います。

逮捕までいかなくても、被害が深刻な場合は損害賠償の訴訟を受けるかもしれません。

訴訟までいかなくても、アクセス遮断なら Web サーバーの設定で管理者だけの判断で容易に可能なので、多分に可能性はあると思います。帯域ごと遮断され、多数の利用者が巻き添えを喰らうことになるかもしれません。

回答するのは迷惑行為の手助けをすることになるかもしれないということで、上記の辺りに問題がないことを示してもらえないと回答は得にくいと思います。

0Like

Comments

  1. @kenji_Abe

    Questioner

    色々とアドバイスありがとうございます。
    質問のところに追記しました。

  2. robots.txtでメルカリの情報収集の拒否を確認をして禁止されている場所などが表示されていますが、このコードの部分が記載されているタグの場所はスクレイピング禁止という認識なのですが

    それは違うと思います。

    robots.txt は "検索エンジンのクローラーに対して、サイトのどの URL にアクセスしてよいかを伝えるもの" であって(詳しくは下の記事を見てください)、そこに無ければスクレイピングしてよいという訳ではないです。

    robots.txt の概要

    メルカリの利用規約を読むか、規約ではっきり分からなければメルカリの運営に聞くしかないと思います。

  3. @kenji_Abe

    Questioner

    メルカリの利用規約で、弊社が提供するインターフェイスとは別の手法を用いてサービスにアクセスすること、とあるのでスクレイピングは迷惑行為に該当しそうですね。
    重ねてアドバイスありがとうございます。

本の課題に取り組んでいまして、ルンバ980のメルカリとラクマで最安値をスクレイピングしたいのですが、ラクマは価格を拾って表示できるのですが、メルカリだけがどうしても拾ってこれません。

どの本でしょうか?書籍名を追記していただけますでしょうか?

0Like

Comments

  1. @kenji_Abe

    Questioner

    @megchandesuさんへ

    書籍名と課題ページを追記しました、何かアドバイスがあればよろしくお願いします

  2. 本は「文系でも初めてでも稼げる プログラミング副業入門 2021第3版」
    p214~228 課題6フリマサイトから最安値を入手してみよう
    の課題に取り組んでいました。

    書籍で「メルカリとラクマ」が指定されているのでしょうか?もしかしたら出版当時はスクレイピング禁止ではなかった可能性もありますが、現在は禁止されているようですね。
    目的はプログラミングの練習かと思いますので他のサイト(練習用サイトもあります)でやった方が良いかと思います。

  3. @kenji_Abe

    Questioner

    書籍では「メルカリとラクマ」が指定されており、コードもほぼ書籍のまま進めた次第です。他の方のコメントにあるように、利用規約に反する行為に該当しそうなので学習は他のサイトで行います。
    ただ、どうしてメルカリだけが「:見つけられなかった」という結果が返ってくるのか、その原因が何なのかはっきりさせたかったですね、、
    いづれわかる時がくることを信じて学習に励みます
    megchandesuさん 回答ありがとうございました

  4. 原因としては、スクレイピングされにくように対策されているとか書籍の出版から年数が経っておりサイトの構成が変わっていたりライブラリの仕様変更による影響などが考えられます。

大前提として初心者は他者のリソースを利用する仕組みを作るべきでは無いです。
特にスクレイピングはWebシステムをいくつか運用し、リソースを使われる事に対して十分な理解を得てから利用してください。
システム運用者や他の利用者からすると、無駄にリソースを食われる事は、悪でしかありません。

メルカリに関しては、禁止事項を2つ犯しています。

ヘルプセンター その他、不適切と判断される行為(禁止されている行為)

弊社が提供するインターフェイスとは別の手法を用いてサービスにアクセスすること

弊社のウェブサイトに関連するシステムやソフトウェア、プロトコルなどをリバースエンジニアリングや逆アセンブルなどの手法により解読する行為、これらを改ざん、修正などする行為、および、これらを複製、二次利用する行為

いろいろ問題のある表現ですが、スクレイピング禁止は読み取れる内容です。

0Like

Comments

  1. @kenji_Abe

    Questioner

    @te2jiさん コメントありがとうございます。
    色々とご指摘されたことに気を付けながら学習していこうと思います

今後のために。
requestsとBS4を使ってソースコードを抽出しますが、実はサイトによってはwebブラウザで表示されるソースと、requestsで取得できるソースに差があります。
requestsで取得したソースを分解・解析してみてください。

0Like

Your answer might help someone💌