2019年11月14日木曜日

開発環境

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、11章(Webスクレイピング)、11.9(練習問題)、11-14、15、16、17、18の解答を求めてみる。

コード

#!/usr/bin/env python3
# 11-14
# seleniumのモジュールをインポート
from selenium import webdriver
import sys
import time

browser = webdriver.Firefox()
url = 'https://www.jp-kamimura.com'
browser.get(url)

print('11-15')
# elementは一つだけ取得
try:
    elem = browser.find_element_by_tag_name('a')
    print(elem)
except Exception as err:
    print(err)
    sys.exit(1)

# elements は全て取得
try:
    elems = browser.find_elements_by_tag_name('a')
    print(elems)
except Exception as err:
    print(err)
    sys.exit(1)


print('11-16')
# テキストがksearchのa要素を取得
try:
    link_elem = browser.find_element_by_link_text('/ksearch')
    print(link_elem)
except Exception as err:
    print(err)
    sys.exit(1)
# クリックをエミュレート
link_elem.click()
time.sleep(5)

# formのnameがtextのHTML要素を取得
try:
    text_elem = browser.find_element_by_name('text')
    print(text_elem)
except Exception as err:
    print(err)
    sys.exit(1)

# キーボード入力をエミュレート
text_elem.send_keys('Python Golang')
time.sleep(5)

print('11-17')
text_elem.submit()
time.sleep(10)

print('11-18')
# 戻る
browser.back()
time.sleep(5)
# 再読み込み
browser.refresh()
time.sleep(5)
# 進む
browser.forward()

入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

% ./sample14.py 
11-15
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="f1fd01cc-9fce-a341-b5ee-4dd88210f7a0")>
[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="f1fd01cc-9fce-a341-b5ee-4dd88210f7a0")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="d98a46dd-f263-7341-8249-259fff8a241a")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="38435f2c-8034-bb47-9406-a9eeeb81705e")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="8e47976f-38e1-824d-8c67-a0e812cf320b")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="40f52ed6-66d1-1b40-9145-c7377ca99f7b")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="3d4faa9b-9f52-7e40-a3f0-434a35cb2a42")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="350f5024-c476-5f4c-aa97-273ea98b1407")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="eef587b8-761a-2449-be3b-5b1613f05708")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="a82366d2-eb84-204b-8d7c-2178a859e176")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="f97ff4a1-3a57-2149-a2ef-024144a97732")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="82ffe29a-781f-9546-b9cd-9a8983cd3aa4")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="38e6c1c4-1787-1f41-a336-1fd290b6f57d")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="6d23c3bf-6f3d-544e-89c0-a8cb21b26372")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="168cd5e7-af08-e54a-b5c7-a386d966c90a")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="192ea292-9604-bc41-8c0a-b276a1b5641f")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="917726bc-ca5b-454c-95a9-60f5c1fb6929")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="8a614f60-8bca-2a40-8528-f449b14d2539")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="ee21b443-8a55-7742-b31f-721fa817b287")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="8506c706-7dbf-db49-a775-d7c9d5515ace")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="967d3b4c-d468-6e42-88f6-dd8e586535a6")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="03708b40-d5a5-7947-ad44-8d3f16451bff")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="983800bc-b99d-a34d-9f9c-f6756ebae6d1")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="fea0dda7-ebb6-8a49-95cd-49df823922db")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="f87f7db3-5afe-bb4b-bac9-fbd2b7849366")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="854adab9-afdf-af4b-ac3b-79e106a4d91c")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="a538a9be-6859-b24c-9cee-43f2b8291e50")>]
11-16
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="168cd5e7-af08-e54a-b5c7-a386d966c90a")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="dc05215a-f28a-4840-b487-788b6d86114e", element="360f808c-334f-894f-a57e-c4a3b21f26fc")>
11-17
11-18
%

0 コメント:

コメントを投稿