【Python】Selenium+Beautifulsoup4를 사용하여 Yahoo 노선 정보를 조작한다

문득 생각하고 파이썬을 만지면 생각 밖에 재미있을 수 있었기 때문에 메모.
초보자용입니다.

하고 싶은 일



아래의 모든 조작을 자동으로 수행합니다.
1. 브라우저(Chrome) 시작
2. Yahoo 노선 정보 열기
3. 도쿄 → 신주쿠를 입력하여 검색
4. 맨 위에 나온 결과의 출발 시각과 도착 시각을 터미널에 표시한다
5. 브라우저 닫기

python3계와 pip, Homebrew를 사용할 수 있는 상태를 전제로 합니다. mac 사용하고 있습니다.

라이브러리 설치



pip와 brew를 사용하여 beautifulsoup4 및 Selenium, ChromeDriver 설치
#BeautifulSoup4とSeleniumのインストール
$ pip install beautifulsoup4
$ pip install selenium
#Selenium ChromeDriverのインストール
$ brew install chromedriver

Yahoo 노선 정보를 조작하는 프로그램 작성



selenium-test-yahootransit.py
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from bs4 import BeautifulSoup

start = "東京" #出発駅
end = "新宿" #到着駅

print(start + "駅から" + end + "駅への直近の電車を調べます...")

#ブラウザを開く
driver = webdriver.Chrome()

#Yahoo路線情報を開く
driver.get("https://transit.yahoo.co.jp/")

#出発駅と到着駅の入力
driver.find_element_by_id("sfrom").send_keys(start)
driver.find_element_by_id("sto").send_keys(end)

#検索ボタンをクリックする
driver.find_element_by_id("searchModuleSubmit").click()

#検索結果のページのHTMLをBeautifulSoupに流し込む
soup = BeautifulSoup(driver.page_source, "html5lib")

#時間が書かれた部分をCSSセレクタで指定し、テキストを抜き出す
time = soup.select(".routeSummary li.time")[0].select("span")[0].text

#結果を表示する
print("結果:" + time + "です。")

#ブラウザを閉じる
driver.close()


실제 동작



좋은 웹페이지 즐겨찾기