Pythonクローラー-美しいスープの使用

pythonクロール天気#

概要##

beautifulsoupを簡単に使用するために、beautifulsoupは、クローラーの初心者が使用するサードパーティのライブラリであり、簡単な操作と使いやすいコードを備えています。
関数にコードを含め、関数を呼び出して繰り返しクロールを実装します

コード##

import requests
from bs4 import BeautifulSoup
# パンダライブラリ、データの保存に使用され、これは基本的なライブラリでもあります
import pandas as pd
# データを取得する

# Webページのソースコードを取得する
def get_data(url):
 resp=requests.get(url)
 # utf-8はサポートされていません
 html=resp.content.decode('gbk')
 # 元のhtmlファイルを解析します
 # html.パーサーは組み込みのパーサーであり、分析に時間がかかる場合があります
 soup=BeautifulSoup(html,'html.parser')
 # 見つけることによって_all関数はすべてのtrタグを検索します
 tr_list=soup.find_all('tr')
 # データを受信するための3つのリストに名前を付けます
 dates,conditions,temp=[],[],[]for data in tr_list[1:]:
  sub_data=data.text.split()
  dates.append(sub_data[0])
  conditions.append(''.join(sub_data[1:3]))
  temp.append(''.join(sub_data[3:6]))
 # データを保存するための空のデータフレームを作成します
 _ data=pd.DataFrame()
 _ data['日付']=dates
 _ data['天候']=conditions
 _ data['温度']=temp
 # データを返す
 return _data

data1=get_data('http://www.tianqihoubao.com/lishi/beijing/month/201101.html')
data2=get_data('http://www.tianqihoubao.com/lishi/beijing/month/201102.html')
data3=get_data('http://www.tianqihoubao.com/lishi/beijing/month/201103.html')
# concatを介して3つのデータフレームを接続し、インデックスをリセットします
df=pd.concat([data1,data2,data3]).reset_index(drop=True)

# データの前処理
# 温度を渡す/ソート
df['最高温度']=df['温度'].str.split('/',expand=True)[0]
df['最低気温']=df['温度'].str.split('/',expand=True)[1]
# マップ機能を使用して、温度の℃を置き換え、それを数値に変換して、後続の分析を容易にします
df['最高温度']=df['最高温度'].map(lambda x:int(x.replace('℃','')))
df['最低気温']=df['最低気温'].map(lambda x:int(x.replace('℃','')))

# 保存する
df.to_csv('./python/クロール気象データ/beijing.csv',index=False,encoding='utf-8')

# 使用時に読む
pd.read_csv('./python/クロール気象データ/beijing.csv')

結論#

クローラーに関するすべてのプロジェクトは実用的なプロジェクトです。理論はありません。基本的な理論は簡単に期限切れになるという考えです。教科書を食べるのは少し面倒です。多くのプロジェクトが変更されています。一部のクローラーはpython2に基づいているため、この方法が最適な場合があります。出口。

Recommended Posts

Pythonクローラー-美しいスープの使用
Python3外部モジュールの使用
pythonが使用できるデータベース
パイソンタプルの使い方
Python開発でのパンダの使用
pythonスレッドプールの使用方法
pythonを使用してOracleデータベースにクエリを実行します
pythonでnohupコマンド命令を使用する
C ++を使用してPython3拡張機能を作成する
pythonを使用して段階的な回帰を実現します
Python開発でのnumpyの使用
Pythonの用途は何ですか
PythonでSQLiteを使用する方法
PythonXiaobaiは式を無差別に使用するべきではありません
Pythonマルチスレッド
Python CookBook
Python FAQ
Python3辞書
およびおよびまたはPythonでの使用方法
python(you-get)
Python文字列
Pythonを使用して飛行機の戦争ゲームを作成する
Pythonの基本
Python記述子
Pythonの基本2
Python exec
Pythonノート
Python3タプル
CentOS + Python3.6 +
Python Advanced(1)
Python IO
Pythonマルチスレッド
Pythonツールチェーン
Python |コレクションはとても使いやすいです! !
Python3リスト
Pythonマルチタスク-日常
Pythonの概要
Pythonクラスデコレータ、小さなデモを使用
Pythonを使用してDouyinキャラクタービデオを生成してください!
Pythonアナリティック
Pythonの基本
07.Python3関数
Pythonの基本3
Python初心者はライブラリの使い方を学びます
Pythonマルチタスクスレッド
Pythonを使用して画像をすばやく切り取る
Python関数
python3を使用してubuntuに3番目をインストールします
python sys.stdout
python演算子
Pythonエントリ-3
Centos 7.5 python3.6
Python文字列
pythonキューキュー
Pythonの基本4
Pythonの基本5
pythonでround関数を使用する方法
乾物| Pythonを使用してmysqlデータベースを操作する
Pythonでzip関数を使用する方法
pythonでformat関数を使用する方法
pythonでアシスタントを実行するコードを使用する方法