この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
皆様、こんにちは。章でございます。
現場対応での仕事について、データ分析のためAPIを用いてデータを取得する場合がよくあります。代わりに、直接Htmlからデータ触りたいであれば、Pythonでlxmlを用いても構いません。
今回、pythonでlxmlを用いてhtmlから情報取得して少し遊びします。
普段、TXの運行情報はウェブサイト( https://www.mir.co.jp/info )で見られますが、「開発者ツールで調査する」により「配信日時」と「内容」は以下のCSSセレクトになります。
#mainBody > div.container > div > section:nth-child(3) > div.table-layout > table > tbody > tr:nth-child(2) > th
#mainBody > div.container > div > section:nth-child(3) > div.table-layout > table > tbody > tr:nth-child(2) > td
シンプルなPythonコードを作成します。
import requests
import cssselect
from lxml import html
def get_tx_status(
url = 'https://www.mir.co.jp/info/',
status_selector = '#mainBody > div.container > div > section:nth-child(3) > div.table-layout > table > tbody > tr:nth-child(2) > td',
update_selector = '#mainBody > div.container > div > section:nth-child(3) > div.table-layout > table > tbody > tr:nth-child(2) > th'):
r = requests.get(url)
elem = html.fromstring(r.text)
status = elem.cssselect(status_selector)[0].text_content().strip()
update = elem.cssselect(update_selector)[0].text_content().strip()
return status, update
if __name__ == '__main__':
(status, update) = get_tx_status()
print("TX最新運行情報")
print(status)
print(update)
実行しますと結果出ました。
TX最新運行情報
現在、平常通り運転しています。
2022年4月18日(月)21:05配信
今回の内容簡単ですが、共有させていただきます。また次回、よろしくお願いいたします。