プロが教えるわが家の防犯対策術!

下記のようなURLをFORで回しウェブスクレイピングをしたいと考えております。

URLは「https://〇〇〇〇〇〇/1/」のようになっており、この1が2、3、4、と続いて行きます。
その場合、5ページまで回したい場合、
for i in range(1, 5):
page_url = "https://〇〇〇〇〇〇/" + str(i) + "/"
r = requests.get(page_url)

と思ったのですがエラーになります。str(i) + "/"の部分に問題がありそうなのですが、どうすれば良いでしょうか。

よろしくお願いします。

A 回答 (3件)

こんばんは



https://qiita.com/sqrtxx/items/49beaa3795925e7de …
では、requests.get('URL') と書かれています。

page_url = "'https://〇〇〇〇〇〇/" + str(i) + "/'"
これではどうでしょう?
先頭と末尾に'を入れてみました。
    • good
    • 0

うーん、No.1氏の仰る通り、具体的なエラーがないと何とも言えないですねぇ。



まぁ、Pythonの場合、エラーが出ても例外処理で捕まえて、プログラム自体は止まらせない、とか言う方法がありますが、そっちは勉強した事ありますか?

例外処理:
https://docs.python.org/ja/3/c-api/exceptions.html

[Python入門]例外と例外処理の基礎:
https://www.atmarkit.co.jp/ait/articles/1909/06/ …

requestsライブラリのマニュアルは読んでないので、どう言う例外が投げられるかは知りませんが(まあ、実際エラー起こしてみればすぐ分かるでしょう)、まず処理を関数化して、ユーザーに何ページ目までスクレイピングするか問わせ、例えば存在しないページ番号にアクセスした場合、例外を投げて寄越したら捕まえて、「もっとページ数を少なく入力してください」と表示させてもう一回入力を促すようにする、とか・・・まぁ、いくらでも書きようはあるでしょうね。

いずれにせよ、具体例と実際のエラーを見てみないと何とも言えないと思います。
    • good
    • 0

具体的にどんなエラーなのですか?



たとえば、for を使わずに直接書いたときはどうなのですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!