Pocket

cloud functionで、ヘッドレスchromeを用いてスクレイピングする場合に、Error: could not handle the requestと表示されてしまう場合の対象法を示します。

まず、以下でスクレイピングしたいページのスクリーンショットを取ります。

https://chromeless.netlify.app/#src=const%20chromeless%20=%20new%20Chromeless(%7B%20remote:%20true%20%7D)%0A%0Aconst%20screenshot%20=%20await%20chromeless%0A%20%20.goto(‘https://www.graph.cool’)%0A%20%20.scrollTo(0,%202000)%0A%20%20.screenshot()%0A%0Aconsole.log(screenshot)%0A%0Aawait%20chromeless.end()

今回は以下のように表示されます。

cookiesへの許諾の画面が出現していることがわかる。

もともと、page.$()でセレクターを指定しておりこれが問題でした。

page.$x()でXpathを指定すれば、スクレイピングすることが可能になりました。以下のスクリプトで[0]を挿入し、最初の要素であることを明示する必要があります。