teratail header banner
teratail header banner
質問するログイン新規登録
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1713閲覧

初心者です。for文の数字を1ずつ増やしたいです。

Illas

総合スコア18

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1グッド

0クリップ

投稿2019/02/18 11:54

編集2019/02/21 03:56

1

0

前提・実現したいこと

初心者です。調べて試してみたのですが上手く出来なかったので投稿しました。

サイトからスクレイピングを行いたいのですが
http://xxx.com/00001
などのスクレイピングするサイトの数字をfor文で数字を1ずつ増やして、
その作業を7万回行いたいです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

import requests response = requests.get("http://xxx.com/00001") data = response.json() for item in data["vsrs"]: print(item)

現在この方法でスクレイピング出来ています。
しかしfor文が繋げられず、上手く行きません。

試したこと

num = 00001 for item in date(1, 70000): num += 1 array[0] = [item]

やURLの数字をitemに置き換えて

import = requests item = [n for n in range(3)]

などを試したのですが上手く出来ません。

補足情報(FW/ツールのバージョンなど)

サイトの数字7万回を増やしたあと、vsrsのデータ全てを一箇所にまとめたいです。
質問の仕方が変な点もあるかと思いますがお願いします。

mac
python3.7です。

bochan2👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/02/18 12:57

とりあえずインデントが潰れて(デフォルトでそうなります)コードが読めないので、https://teratail.com/tour を参考に質問文を編集し、コードをシンタックスハイライト・マークダウンで囲ってください。
hayataka2049

2019/02/18 13:22

囲ってもインデントしなかったら意味がないですよ。あと、試したことの部分のコードも囲ってください。
Illas

2019/02/18 14:22

ありがとうございます。調べながらインデントしてみます。
bochan2

2019/02/19 11:15

teratailで質問してくださりありがとうございます! 二個目のコードのインデントがおかしくなっているので直していただけると、他の困っている人が見たときに役に立つと思うので修正をお願いします。
Illas

2019/02/23 13:02

わかりました。皆さまありがとうございます。
guest

回答1

0

ベストアンサー

こんにちは。

下のようにformatを使って0埋めした数値を、URLに埋め込むといいでしょう。
なお、あまり高速にアクセスするとDoS攻撃になるので注意してください。

Python

1import requests 2import time 3 4for i in range(1, 70000): 5 response = requests.get("http://xxx.com/{:0>5}".format(i)) 6 time.sleep(1) # 1秒待機

投稿2019/02/18 13:19

編集2019/02/19 00:27
firedfly

総合スコア1133

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/02/18 13:23

この場合sleepとかしないとDOS攻撃になるので、最低限それは書いておいた方が親切かと。
Illas

2019/02/18 14:30

なるほど参考になります。この場合スクレイピングしたいdata["vsrs"]:とどう繋げれば良いのでしょうか?
firedfly

2019/02/19 00:25

hayataka2049さん。なるほど……追記しておきます。
firedfly

2019/02/19 00:32

Illasさん。どう繋げれば良いのか、ですか。 「ただ繋げれば良い」と思いますが難しいですかね。 もしforの多重ループがわからないようなら 九九を表示するプログラムでも作ってみてください。 参考:Pythonで多重ループ(ネストしたforループ)からbreak | note.nkmk.me https://note.nkmk.me/python-break-nested-loops/
Illas

2019/02/21 02:38

わかりました、丁寧に回答して頂きありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問