

プログラミングというより、airbnbのサイトの構造に関する質問となります。

Pythonでairbnbのスクレイピングをしているのですが、県別のリスティングIDを抽出したいと考えています。どのような方法で、県内の全てのリスティングIDをスクレイピングすることができるでしょうか？


CC BY-SA 4.0
2019-02-14T14:25:39.813
52782
2020-04-06T06:28:35.163
2020-04-06T06:28:35.163
3060
21324
question
web-scraping
airbnbスクレイピング　県別データの抽出方法


スクレイピング用の情報収集や試行錯誤で時間を取るより、契約してAirbnb
APIの公式な資料を入手した方が早くて堅実だと思うのですが。仕様変更とか遮断に気を使わなくて済むでしょうし。

[API Partner](https://www.airbnb.jp/partner)

> Connect to our API.  
>  Connect to millions of travelers on Airbnb.

サードパーティが収集してリストしている概要情報のページ  
[Airbnb API | ProgrammableWeb](https://www.programmableweb.com/api/airbnb)

> Airbnb Officially Launches an API  
>  The long awaited Airbnb API is officially here. While Airbnb has publicly
> announced its official API, the API is not completely open to the public.
> Those interested must apply from access. Public documentation is not
> currently available. The focus of the initial API launch is the supply side.
>
> Airbnbが正式にAPIを発表  
>  待望のAirbnb APIは正式にここにあります。
> Airbnbは公式APIを公に発表しましたが、そのAPIは完全に一般公開されているわけではありません。 興味のある方はアクセスから申し込んでください。
> 公開文書は現在利用できません。 最初のAPI起動の焦点は供給側です。

* * *

それとは別に、ユーザー登録していない訪問者がAirebnbのサイトで検索した場合にこのようなリクエストが出るようです。

[code]

    https://www.airbnb.jp/s/沖縄県--日本/homes?guests=1&refinement_paths%5B%5D=%2Fhomes&allow_override%5B%5D=&s_tag=IQcJExOH
    https://www.airbnb.jp/s/鳥取県--日本/homes?guests=1&refinement_paths%5B%5D=%2Fhomes&allow_override%5B%5D=&s_tag=o65CaWlw
    https://www.airbnb.jp/s/宮城県--日本/homes?guests=1&refinement_paths%5B%5D=%2Fhomes&allow_override%5B%5D=&s_tag=tfElWPeh
    
[/code]

それぞれ、「沖縄県, 日本・宿泊先」「鳥取県, 日本・宿泊先」「宮城県, 日本・宿泊先」で検索。  
末尾の`s_tag=XXXX`の部分が違うだけなので、その部分(IQcJExOH,o65CaWlw,tfElWPeh)が県を表している可能性があります。

ただし上記とは違う手順で「沖縄県, 日本・宿泊先」を検索したところ別のリクエストが出ました。

[code]

    https://www.airbnb.jp/s/沖縄県--日本/homes?refinement_paths%5B%5D=%2Fhomes&guests=1&query=沖縄県%2C%20日本&allow_override%5B%5D=&s_tag=OWuXfaCk
    
[/code]

`guests=1`の位置がずれ、途中に`&query=沖縄県%2C%20日本`が入り、末尾の`s_tag=OWuXfaCk`が最初と違うので、何か別の情報なりルールが適用されたのかもしれません。

スクレイピング経験/知識の豊富な人ならば、こうした仕組みを探す作業も短く済むのかもしれませんが。

* * *

**追記**  
思い立って、頭の部分だけで検索したら、それだけでも大丈夫でした。  
以下で「沖縄県, 日本・宿泊先」を検索したのと同じになります。

[code]

    https://www.airbnb.jp/s/沖縄県--日本/homes
    
[/code]

沖縄県だけでもそうですが、件数は1回の表示に収まりきらないので、下へスクロールしていくと、続きが表示されていきます。  
まあ単純にはなりましたが、使うためにはまだ色々と工夫が必要でしょうね。


CC BY-SA 4.0
2019-02-15T00:53:49.133
52785
2019-02-15T12:06:27.957
2019-02-15T12:06:27.957
26370
26370
52782
answer