。以下の方法があります:","クランチベース","会社概要","素晴らしいサポートをありがとう!","クイックリンク","アフィリエイト・プログラム","プレミアム","ProxyScrape プレミアムトライアル","プロキシの種類","代理国","プロキシの使用例","重要","クッキーポリシー","免責事項","プライバシーポリシー","ご利用条件","ソーシャルメディア","フェイスブック","リンクトイン","ツイッター","クオラ","テレグラム","ディスコード","\n © Copyright 2024 -Thib BV| Brugstraat 18 | 2812 Mechelen | ベルギー | VAT BE 0749 716 760\n"]}
ウェブサイトから重要な情報を迅速かつ効率的に引き出すにはどうすればいいのでしょうか?手作業でデータを抽出するには多くの時間がかかります。ウェブスクレイピングを使えば、表形式でない、あるいは構造化されていないデータをウェブサイトから自動的に取得することができる。その後、そのデータをスプレッドシートなどの構造化された使用可能な形式に変換することができます。
ウェブサイトから重要な情報を迅速かつ効率的に引き出すにはどうすればいいのでしょうか?手作業でデータを抽出するには多くの時間がかかります。Webスクレイピングを使えば、Webサイトから表形式でないデータや構造化されていないデータを自動的に取得することができます。その後、そのデータをスプレッドシートや.csvファイルのような構造化された使用可能な形式に変換することができます。
Webスクレイピングは、データをアーカイブし、オンラインでデータの変更を追跡することができます。企業は様々な目的でスクレイピングを利用している。例えば、オンラインショップは競合他社の価格項目や一般に公開されているページをスクレイピングするために使用する。そして、この情報を価格調整に利用する。Webスクレイピングのもう一つの一般的な慣行は、組織がマーケティング目的で電話番号や電子メールアドレスのような個人データを収集する連絡先スクレイピングです。
なぜ誰かがウェブサイトから大量の情報を抽出しなければならないのか?それを理解するために、ウェブスクレイピングの以下の用途を見てみよう。
以下の手順でウェブサイトからデータをスクレイピングできる。
Pythonでウェブスクレイピングに使えるライブラリは以下の通り:
Pandas - Pandasはデータの操作と分析に使用されます。このライブラリを使用してデータを抽出し、必要な形式で保存することができます。
Beautiful Soup - HTML や XML ドキュメントを解析する Python パッケージです。ウェブサイトからデータを簡単に抽出するのに役立つ解析木を作成します。
Requests - シンプルなHTTPライブラリ。
私たちはこのサイトを使ってCOVIDの症例数を抽出する予定です。その後、データを分析し、いくつかのビジュアライゼーションを作成します。
以下のように、PythonでリクエストとBeautifulSoupをインポートしてWebスクレイピングを行うことができる。
インポートリクエスト
frombs4importBeautifulSoup
データをスクレイピングするウェブサイトのURLを指定します。requests.get()メソッドを使用して、指定されたURLにGETリクエストを送信する必要があります。さらに、以下のコードに示すように、2つの文字列引数を取るBeautifulSoupコンストラクタを作成する必要があります。
url='https://www.worldometers.info/coronavirus/countries-where-coronavirus-has-spread/'
page= requests.get(url)
soup= BeautifulSoup(page.text,'html.parser')
data= [] (データ)
soup.find_all()メソッドを使用すると、URLのテーブル内のすべての要素をスクレイピングすることができます。find_all()メソッドは、見つかった要素へのインデックスベースのアクセスを提供するオブジェクトを返し、forまたはwhileループを使用して出力することができます。
data_iterator= iter(soup.find_all('td'))
イテレータに利用可能なデータがあるまで繰り返すwhile Trueループを使うことができる。
while True:
try:
country =next(data_iterator).text
確定 =next(data_iterator).text
死亡 =next(data_iterator).text
大陸 =next(data_iterator).text
confirmed "および "deaths "列については、カンマを外してint型に変換する。
data.append((
国
(confirmed.replace(', ',''))、
(deaths.replace(',',''))、
大陸
))
except StopIteration:
ブレーク
反復処理に必要な要素数がゼロになると、StopIterationエラーが発生する。
上記のコードを実行すると、ウェブサイトからデータを抽出できます。さらにデータを分析するには、Pandasデータフレームを作成する必要があります。以下のコードでは、確認されたCOVIDの症例数でデータをソートしています。
pandasライブラリをインポートしてデータフレームを作成する。
data.sort(key = lambda row: row[1], reverse = True)
pandas を pd としてインポート
df = pd.DataFrame(data,columns=['country','number of cases','Deaths','Continent'],dtype=float)
df.head()
df['Number of cases']=[x.replace(',','') for x in df['Number of cases']].
df['Number of cases'] = pd.to_numeric(df['Number of cases'])
df
以下の出力が得られる:
Dataframeに関する情報を得るには、df.info()を使用する。
df.info()
以下のように、Death_rateという新しいカラムを作成する。
dff = df.sort_values(by ='症例数',ascending = False)
dff['Death_rate']= (dff['Deaths']/dff['Number of cases'])*100
dff.head()
出力はこうだ。
プロキシサーバーは、あなたがスクレイピングしたい情報にアクセスするためにユニークなIPアドレスを使用することができます。こうすることで、ウェブサイトはあなたの実際のIPアドレスを見ないので、匿名でデータをスクレイピングすることができます。ウェブスクレイピングにプロキシを使用しなければならない理由は以下の通りです。
以下の2つのプロキシを使って、ウェブサイトからデータをスクレイピングすることができる。
データ・ビジュアライゼーションとは、データや情報をグラフィカルに表現することであることはご存知でしょう。表現されたデータを理解するためのアクセス可能な方法として、チャート、マップ、グラフのような視覚的ツールを使用することができます。データ可視化ツールを使って、このウェブサイトから抽出したデータをどのように可視化できるか見てみましょう。
データを可視化するには、以下のライブラリをインポートする必要があります。
snsとしてseabornをインポート
importmatplotlib.pyplotasplt
frompylabimportrcParams
データセット内の対の関係を示すためにペアプロットをプロットすることができます。以下のコードを使用することで簡単に実装でき、フォローアップ分析のためにデータの傾向を特定することができます。
rcParams['figure.figsize'] = 15, 10
frommatplotlib.pyplot import figure
figure(num=None, figsize=(20, 6),dpi=80,facecolor='w',edgecolor='k')
sns.pairplot(dff,hue='Continent')
と出力される。
カテゴリカル・データを長方形の棒として表示し、データ内の異なるカテゴリの値を比較する棒グラフをプロットできます。
sns.barplot(x ='国',y ='症例数',data = dff.head(10))
出力はこうだ。
散布図を使って数値間の関係を理解することができます。散布図は、変数間の関係を表すために点を使用します。
sns.scatterplot(x ="症例数", y ="死亡数",色相 ="大陸",データ= dff)
出力はこうだ。
以下のコードでは、データを大陸別にグループ化し、COVIDケースの数でソートします。
dfg = dff.groupby(by = 'Continent',as_index = False).agg({'Number of cases':sum,'Deaths':sum})
dfgg = dfg[1:]
df1 = dfgg.sort_values(by = 'Number of cases',ascending = False)
df1['Death_rate'] = (df1['Deaths']/df1['Number of cases'])*100
df1.sort_values(by = 'Death_rate',ascending = False)
出力はこうだ。
ここで、"Continent "と "Death_rate "を以下のように棒グラフにプロットする。
sns.barplot(x ='Continent',y ='Death_rate',data= df1.sort_values(by='Death_rate',ascending=False))
出力はこうだ。
この棒グラフは、死亡率が南米で最も高く、オーストラリアで最も低いことを示している。
単純なASCII表を作成するためにtexttableをインストールする。そして、それをttとしてインポートする。
pip install texttable
ttとしてtexttableをインポートする
下図のようにtexttableオブジェクトを作成しなければならない。ヘッダー用にテーブルの最初に空の行を追加し、列を整列させる必要があります。
table = tt.Texttable()
table.add_rows([(None,None,None,None)] + data)table.set_cols_align(('c','c','c','c')) # l'は左、'c'は中央、 'r'は右を表す。
table.header((' 国 ',' 症例数 ',' 死亡者数 ',' 大陸 '))
print(table.draw())
ここで、出力はテーブルのいくつかの行を次のように表している。
ウェブスクレイピングでは、ウェブサイトから大量のデータを迅速かつ効率的に抽出することができます。抽出した非構造化データを.csvファイルのような使用可能な形式に変換することができる。Pandasと BeautifulSoupという2つのモジュールを使うことで、ウェブからデータをスクレイピングできることがわかった。プロキシを使えば、ウェブから匿名でデータを抽出することができる。ウェブスクレイピングには、データセンター型プロキシとレジデンシャル型プロキシのどちらかを使うことができる。住宅用プロキシはデータセンター用プロキシよりも信頼性が高いが、高価である。さらに、データ分析を行って、ニーズに基づいた洞察力のある情報を導き出すことができる。この記事では、棒グラフ、ペア・プロット、散布図などのデータ可視化ツールを使ってデータを分析した。