ColaboratoryでSelenium
!apt install chromium-chromedriver !cp /usr/lib/chromium-browser/chromedriver /usr/bin !pip install selenium from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome('chromedriver', options=options) driver.implicitly_wait(10) driver.get('http://www.yahoo.co.jp') html = driver.page_source.encode('utf-8') # ブラウザ操作 driver.save_screenshot("ss.png") driver.quit() soup = BeautifulSoup(html, "html.parser") print(soup.prettify())
# ウィンドウハンドルを取得する(list型配列) handle_array = driver.window_handles # 一番最後に表示されたブラウザにドライバーを切り替える driver.switch_to.window(handle_array[-1]) or driver.switch_to.window(driver.window_handles[-1])
暗号化された接続が確立されたドメインに対する信頼性を保証できません
カスペルスキーをインストールしたパソコンでchromeでアクセスすると
暗号化された接続が確立されたドメインに対する信頼性を保証できません。
対策
- カスペルスキーのメイン画面を起動し、画面下部にある便利ツールを開き、下記の順に開きます。[マイネットワーク]→[ネットワークモニター]
- ポート8009のIPアドレスをメモに控え、左上の←(戻るボタン)を押しメイン画面に戻ります。
- 画面左下の [歯車のマーク(設定)] をクリックし [プロテクション] を選択します。
- 画面右の一覧から、下記の順に選択します。[アプリケーションコントロール]→[アプリケーションの管理]
- 表示された画面内の右上にある検索バーで「Chrome」と入力し、検索します。
- Google Chromeを右クリックし「詳細とルール」を選び「除外リスト」を選択します。
- 画面中部にある [すべてのトラフィックをスキャンしない]をクリックし、プルダウンから[暗号化されたトラフィックをスキャンしない]を選択します。
- 指定IPアドレスのみにチェックを入れ、メモに控えたIPアドレスを入力します。
- [指定ポートのみ] にチェックを入れて、「8809」と入力します。
- 画面右下にある [保存] をクリックして、右上の [×] で画面を終了します。
対策2
- 画面左下の [歯車のマーク(設定)] をクリックし [詳細]をクリックし [ネットワーク] を選択します。
- 暗号化された接続のスキャンの暗号化された接続をスキャンしないを選択します。
uipath
- 作者: 清水理史,できるシリーズ編集部
- 出版社/メーカー: インプレス
- 発売日: 2019/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
i.river.go.jpからダムの貯水率を取得する
import re import requests from bs4 import BeautifulSoup dam_name = '早明浦ダム' url = 'http://i.river.go.jp/_-p01-_/p/ktm1801070/?mtm=10&swd=&prf=3601&twn=3601208&rvr=&den=2255200700004' # dam_name = '玉川ダム' # url = 'http://i.river.go.jp/_-p01-_/p/ktm1801070/?mtm=10&swd=&prf=3801&twn=3801202&rvr=&den=0972900700006' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' } r = requests.get(url, headers=headers) if r.status_code == 200: soup = BeautifulSoup(r.content, 'html5lib') contents = soup.find('a', {'name': 'contents'}).get_text('\n', strip=True) # print(contents) # サブタイトル・単位を除去 temp = re.sub(r'■\d{1,2}時間履歴\n単位:%\n', '', contents) datas = [i.split() for i in temp.splitlines()] for data in datas: try: float(data[1]) except: continue else: print('ただいまの{0}の貯水率は{1[1]}%です({1[0]})'.format(dam_name, data)) break else: print('取得できませんでした')
ひとりslack
slackに移行