質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

611閲覧

スクレイピングでデータ取得数を減らしたい

makamaka

総合スコア21

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/08/21 01:16

前提・実現したいこと

pythonのpandasを使い、スクレイピングを行っています。
サイトAからサイトB、サイトC、サイトD・・・・・へ飛ぶためのURLを取得したいと思っています。
対象URLは100程度です。サイトAには対象URLのほかに200ほど別のURLがあります。

ソースコードは該当のソースコードの通りです。

対象URLの共通点は以下の通りです。
URLの末尾は6桁の数字で構成されています。
頭が2、2桁目が59、3桁目以降は09から始まる6桁の数字。
対象URLは同テーブル内のURL。同テーブル内には対象URL以外にURLが60ほどある。

現状のソースコードでは50000通りあるため対象サイトへかかる負荷や、時間等を考慮し、できるだけ少ない数でデータ取得を行いたいです。

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

データ取得する数を減らしたい

該当のソースコード

python

A_id_list = []
for one in range(5,10):
for two in range (0,10):
for three in range (0,10,1):
for four in range (0,10,1):
for five in range (0,10,1):
A_id = '2'+str(one)+str(two)+str(three)+str(four)+str(five)
A_id_list.append(skill_id)

試したこと

対象URLを個別で指定。

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

URLの個別での指定以外の方法があったら教えていただきたいです。

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

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

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

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

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

meg_

2021/08/21 02:33

> 現状のソースコードでは50000通りあるため対象サイトへかかる負荷や、時間等を考慮し コードがないので分かりませんが「負荷」とはどの処理部分でかかっているのでしょうか?また「対象サイト」とはサイトAを指していますか?
makamaka

2021/08/21 03:09

説明が不足し申し訳ありません。 当方初心者のためわかりにくい言い回し等あるにもかかわらずご助言ありがとうございます。 現状のソースコードとは該当のソースコードを指しています。 上記のコードを実行後 len(skill_id_list) を行うと、50000と出るため、50000通りあるのかと考えました。 負荷に関しては、対象サイトへの負荷を考えています。timeモジュールを活用しても抽出対象が多い場合対象サイトに膨大な負荷をかけると見た記憶がありまして、できるだけ抽出数を少なくしたいと考えました。 対象サイトとは対象サイトAを指しています。
meg_

2021/08/21 03:31

> 対象URLは100程度です。サイトAには対象URLのほかに200ほど別のURLがあります。 どのようにサイトAからURLを取得するのか分かりませんが、取得方法によってはサイトAの負荷はほとんど掛かりませんよ。(※取得方法はサイトの構造によって変わりえます) また存在しない要素をスクレイピングで取得しようとするとエラーが出ますが、その辺りについては理解されていますか?
makamaka

2021/08/21 03:34

ご回答ありがとうございます。 存在しない要素につていは理解していませんでした。 ご教授いただきありがとうございます。 再度やり方を検討します。
guest

回答1

0

ベストアンサー

サイトAを解析して100程度+ほかに200ほど別のURLを取り出してリストにしましょう。

普通は正規表現で対象URLの共通点を持つURLだけを選択してアクセスします。
正規表現がわからないなら、「該当のソースコード」で作ったURLがリストの中になるかどうかを調べて、それだけにアクセスすればよいでしょう。

投稿2021/08/21 03:28

ppaul

総合スコア24666

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

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

makamaka

2021/08/21 03:36

なるほど ご教授いただいた方法を試してみます。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問