このページでは企業リスト収集をするために必要なスクレイピングのやり方を解説いたします。

必要なものはスプレッドシートのみです。

重要な関数

=IMPORTXML

参考:

IMPORTXML関数は、サイトから必要な情報を指定し、その部分の情報をスプレッドシートに出力できるような関数です。

記述の仕方は

IMPORTXML(URL,”XPathクエリ”)

↓このまま使えます。↓

=IMPORTXML(セル番号,"XPathクエリ")

XPathとは

XPath(エックスパス)についてですが、マークアップ言語XMLに準拠した文書の特定の部分を指定する言語です。

これは言葉では理解が難しいと思うので、「そういうものがあるんだな」くらいで大丈夫です。

XPathの取得の仕方

Chromeブラウザ起動中、F12(ファンクション12)でデベロッパーツールを開き抽出したいところを選択

macだと command+option+I と3キー

デベロッパーツール上で

右クリック→copy→copy XPath

=IMPORTXML(URL,XPathクエリ)で

=IMPORTXML(URL,取得したXPathクエリ)とする

これで、関数の入力ができましたが出力結果は「エラー」。

問題があるのはXPathの部分です。

エラーにならないやり方

先ほど、ダブルクォーテーションで囲むということをお伝えしましたが、それだけではダメでした。

なぜなら、「[@id=”js-aaOpData_Listing_1″]」の「”js-aaOpData_Listing_1″」の部分をダブルクォーテーションで囲っているからです。

本来ならば、XPathすべてをダブルクォーテーションで囲む必要があったのですが、XPath内にダブルクォーテーションが使われていて、途中でXPathが途切れるという判定になってしまいます。

なので、この場合は「”js-aaOpData_Listing_1″」のダブルクォーテーションをシングルクォーテーション「’」に変えてあげましょう。

そうすると解決いたします。

もう一つのエラーにならないやり方(※こっちが重要)

先程のXPathですが、ダブルクォーテーションをシングルクォーテーションに直さないやり方がございます。

XPath

//*[@id=”js-aaOpData_Listing_1″]/ul/li[1]/h3/a/span

はこの抽出したい場所を表しています。

これを分解すると

//(このページから)*[@id=”js-aaOpData_Listing_1″](IDで指定されている)/ul(リストの中で)/li[1](1番目の)/h3(h3タグである)/a(aタグの)/span(spanタグの場所)

このページからIDで指定されているリストの中で1番目のh3タグであるaタグのspanタグの場所

となります。

このXPathはIMPORTXMLで記載する際は省略可能なので、

このページからIDで指定されているリストの中で1番目のh3タグであるaタグのspanタグの場所

↓省略して

このページからh3タグであるaタグのspanタグの場所

という形つまり

//h3/a/span

でもスクレイピングをすることが可能です。

=IMPORTXML(A1,"//h3/a/span")

もっとかんたんに言うと

「//」スラッシュ2ついれて、ほしいデータの場所の後ろを引っ張ってくれば良いと覚えればOKです。

複数のURLをまたがって収集するやり方

複数のURLの場合はURLの規則性を見つけましょう

バイトルの場合はページネーションがありpage2page3でつながっています。

ただし

IMPORTXMLは下のセルへ抽出していくのでこのやり方だと下のセルに重なるところは表示されません。

対処法として、URLを転置しましょう。

URLの規則性が複雑な場合

バイトルみたいに

https://www.baitoru.com/kanto/jlist/tokyo/23ku/shinjukuku/ https://www.baitoru.com/kanto/jlist/tokyo/23ku/shinjukuku/page2 https://www.baitoru.com/kanto/jlist/tokyo/23ku/shinjukuku/page3

と規則性があれば良いですが、

ゼクシィみたいに

https://zexy.net/wedding/clientList/?pn=1&bg=&area=0648&area=0649&area=0650&area=0651&area=0652

https://zexy.net/wedding/clientList/?pn=2&bg=&area=0648&area=0649&area=0650&area=0651&area=0652

https://zexy.net/wedding/clientList/?pn=3&bg=&area=0648&area=0649&area=0650&area=0651&area=0652

とURLの途中でページの割番が振られております。

この際は他の関数を組み合わせましょう

URLを規則性があるところで区切る

セルでURLをふやす

区切ったところを邪魔にならない部分に置く

増やす

=A1&A2で区切ったURLをくっつける

隣のセルも同様にくっつけてゆく

=IMPORTXML

でスクレイピング

完了

ページが1ページの場合(アドオンを使ったやり方)

アドオン

https://chrome.google.com/webstore/detail/scraper/mbigbapnjcgaffohmbkdlecaccepngjd

やり方

https://qiita.com/ka-ko/items/2ef0c6870bb8a174f35f

まとめ

=IMPORTXML(セル番号,"XPathクエリ")

↑これを使う

デベロッパーツール上で

右クリック→copy→copy XPath

=IMPORTXML(セル番号,"XPathクエリ")  の中に入れるxpathは

「//」スラッシュ2ついれて、ほしいデータの場所の後ろを引っ張ってくれば良い

エラーがおおいばあい

https://google.dw230.com/importxml/

入れ替わったものから順に
関数を抜いた数字だけに置き換えてください。