質問: webスクレイピング google colaboratory, beautifulsoup プログラミング初心者です。 ユーチューブを見ながらウェブスクレイピングに初めて挑戦しているのですが、中々うまく行きません。 やりたいこととしては、google colaboratoryを使用し、下記のサイトから各病院名と住所をテキストとして抽出(〇〇病院、〇〇県、〇〇市、、、、のように)しgoogleドライブに保存することです。下記サイトは4ページありますが、全てのページでスクレイピングを行えるようにしたいと考えております。 ↓スプレイピングしたいサイトurl https://petlife.asia/hospital/search/aomori/ もし可能であれば、下記リンクのような形でコードを教えていただくことはできないでしょうか。 https://colab.research.google.com/drive/1p1ygfceaetlcmjiwbpke3n85apjhi2kg 大変で面倒くさい作業と思いますが、もし少しでもお力いただける方がいましたらよろしくお願いします。私も今必死に勉強しています。
回答: > for i in range(1,5):の段から実行しますと、下記のエラーが出てきます。 あ、コピペしたでしょ? 教えてgooの仕様だと、http://で始まるウェブアドレスがあまり長い場合には、省略されて表示されちまうんですよ(苦笑)。だからコピペそのまますると、文字列状態で末尾が"..."となって不完全なアドレスになっちまう(苦笑)。教えてgoo上でクリックしてリンク先に飛ぶ際には問題ないようになってますが、プログラムファイルにコピペすると甚だ不具合ですよねぇ。クソ、さすが「教えてgoo」はよく出来てる(出来てない・怒)。 ええとね、スクレイピング目的のサイト https://petlife.asia/hospital/search/aomori/ を見てほしいんですが、下の1、2、ってページ移動を適当にクリックしてみてください。当然2ページ目に移動したり3ページ目に移動したりしますよね。その際、アドレスバーに注目してください。上のサイトアドレスに、例えば2ページ目だったら ?page=2 とか、3ページ目だったら3、とか付け足されてませんか? つまり、上のアドレスの文字列に?page=を付け足して、forで回したi(つまり、さっきのプログラム上だと1~4までの数値になる)を文字列に変換(strによって)して足せば、自然と1ページ目から4ページ目までどんどん開いていく、ってことになります。 従って、教えてgooの仕様のせいで ?pag ... になってるとこは、 ?page=" です。そこを修正してください。