lancersからシステム開発案件のうちpythonを使用した案件のみを抽出して、ドロップダウンメニューから新着順にソートする

ランサーズ

lancersで早速仕事を受託してみたい!なんてこともあるかもしれませんが、如何せん案件が膨大にあるので、まずはコンパクトに「システム開発案件」で「python」を検索にかけて出てきた案件を取得してみることにします。

 環境

Mac10.14
python3.7
Chrome77.0

 前提条件

  • selenium
  • chromedriver インストール済み
  • beautifulsoup4 インストール済み

 お課

  1. lancersのシステム開発案件にアクセスする
  2. 「python」の検索条件を取得する
  3. ドロップダウンメニューを「新着順」に並び替える

 先ずはサイトにアクセスすること

とりあえず、アクセス先のURLの検索ボックスにpythonを入れるところまできました。

 アクセス先URLから「python」で検索をかける

 エラーメッセージが出現


# ⇨selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable(Session info: chrome=77.0.3865.75)

ブラウザ上ではこのid=SearchのButton要素を押すことで検索が実行されています。なのになぜか動きません。
ならばそもそもこの道は違う道なのではないかということに立ち返る必要があります。まずはLancersのサイトのHTMLを観察してみました。
検索の部分はフォームになっていないことに気づきました。
つまり、Searchボタンを押してもformにデータがsubmitされているわけではないということです。しかしブラウザ上ではButtonを押したら検索結果が表示される。
それはなぜか。
JavaScriptで検索を実行しているからでしょう。
私は専門ではないので詳しくはないのでよくわかりませんが、LancersのサイトはReactか何か知りませんが、SPAとして動作しているんだと思います。
それならばJavaScriptでclickを実行してみればいいのではないかという仮設を立ててみます。

現在2019年9月16日ですが1,260件の案件が出てきました。

 ドロップメニューダウンから「新着順」を選択する

まずは、chromeの検証をします。

classの名前が「p-search__sort-selectbox」という事がわかります。

これで、全てのお題が解決できたことになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です