1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonAdvent Calendar 2022

Day 11

ローカルファイルにrequestsしてBeautifulsoupを使いたいとき

Posted at

移動中のWifiない(あるいは貧弱な)環境で思いつきました。
結論はローカルファイルにあるhtmlファイルをopenしてreadするというだけの話です。

下記サンプルを実行するためには、 "http://quotes.toscrape.com/" へあらかじめアクセスして、ブラウザ上でctrl+Sしてhtmlファイルをローカルファイル"Quote Quotes to Scrape.html"へダウンロードしておく必要があります。
また、当然のことながら、ネットワークアクセスがない状態で試すためにLANケーブルを抜くなり、フライトモードにして実行してください。

import requests
from bs4 import BeautifulSoup

WIFI = False

if WIFI:  # Wifiアクセスできるときはインターネットから取得
    base_url = "http://quotes.toscrape.com/"
    r = requests.get(url).text
else:  # Wifiアクセスできないときはローカルファイルから取得
    base_url = "./Quotes to Scrape.html"
    with open(base_url) as f:
        r = f.read()

soup = Beautifulsoup(r, "html.parser")
# >>> soup.li.a
# => <a href="http://quotes.toscrape.com/page/2/">Next <span aria-hidden="true">→</span></a>

WIFIがあるときはrequestsでインターネットへアクセスし、
WIFIがないときはローカルファイルからHTMLをstrとして読み込みます。

WIFIがあるかどうかも自動化するなら、pingコマンドをsubprocessから打つなり、Ping3, Pingsモジュールを使って実行するとよいそうです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?