from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.python.org") time.sleep(5) driver.close()
ここに前回のソースコードがあるじゃろ
「driver = webdriver.Chrome()」と名前を付けてるので
「driver.get()」のように
「driver.***」で動かせる
メソッドとかいうらしいな?
たぶんあってる
サイトによっては「browser = webdriver.Chrome()」と書いてたりするので
その場合は「browser.get()」のように前の名前が変わる
目次
なんかやる
スクリーンショットを撮る
save_screenshot("ファイル名')
よくあるウィンドウ内の撮影じゃ
seleniumのwebDriverとかいうのが機能を用意してくれている
これをやるとページをjavascript等の読み込みをして、一度表示しきるまで待ってくれる
ajaxとかいう裏でゴソゴソやるのは待てないことが多くてダメ
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.python.org") driver.save_screenshot("screenshot.png") driver.close()
わざわざ「time.sleep」とか書かないで写真取ればページを表示できたか確認できるよね
同じ名前のファイルが既にあると上書きされる
htmlソースを取る
page_source
「いま表示しているページのソースを返す」働きをしている
たぶん
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.python.org") get_source = driver.page_source print(get_source) driver.close()
「driver」に「page_source」して変数「get_source」に紐付け
get_sourceを「print()」して、コンソールに出力で確認じゃ
ソース全部あったほうが都合がいい時、とは?
リンクを取り出す
とりあえずaタグを探してリンクを取る
「Element」とかいうのを見て、中にあるリンクURLを読み取る、という作りの様子
find_element_by_tag_name("タグ名") # 最初の1個目 find_elements_by_tag_name("タグ名") # 有るだけ
これで取れたモノを「print()」に入れてみるとhtmlソースではなく、
「selenium.webdriver.remote.webelement.WebElement」とかなんとか言いよる
おそらく「Element」とかいう情報が取れている感じ
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.python.org") e = driver.find_element_by_tag_name("a") # 最初の1個目 print(type(e)) driver.close()
Elementに対して「属性情報」を取り出す「get_attribute」を使う
get_attribute("属性名")
リンクのURLはaタグの “href” という属性に書かれているので、こうじゃ
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.python.org") e = driver.find_element_by_tag_name("a") # 最初の1個目 print(e.get_attribute("href")) driver.close()
ページ内全部のリンクを出す
リンクを全部みつけような
(細かい話は次回以降)
find_elements_by_tag_name() はlist型で格納される
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.python.org") es = driver.find_elements_by_tag_name("a") # 有るだけ for n in es: print(n.get_attribute("href")) driver.close()
コンソール上にリンクがずらずらと出力されると思われる
テキストファイルに書き出したり、
データベースを持ち出してきて保存、照合とかやって、
前に見たページをもう一度見ないようにするとかできる
ただ、やり方を調べないとわからん
ここらへんで一回いいですかね
‘ω’)ノシ
コメントを残す