14章「インターネット上のデータ」の対策ポイントと例題
14章「インターネット上のデータを扱う」からは本番40問中2問が出ます。HTTP リクエストの送り方と、取得した HTML・フィードの解析を問う章です。
- urllib.request
- requests
- Beautiful Soup
- feedparser
この章の出題数と位置づけ
14章「インターネット上のデータ」からは本番40問のうち2問が出題されます。 全体に占める割合は5.0%で、15章中6番目タイの出題数です(同じ2問の章が他に7章あります)。 合格に必要なのは28問正解(12問まで不正解可)なので、 この章の2問をどこまで取りに行くかは、他の章との兼ね合いで決めるのが現実的です。
対策のポイント
- 標準ライブラリは urllib.request、サードパーティは requests、という区別が前提になります。
- requests のレスポンスから .text / .content / .json() のどれを使うべきかを場面で判断できるようにします。
- ステータスコード(200 / 301 / 404 / 500)の意味と、raise_for_status の役割を押さえます。
- Beautiful Soup の find と find_all の戻り値の違いも問われやすい点です。
この章の例題(3問)
当サイトで実際に出題している問題から3問を、正解と解説つきで掲載します。 すべて自作のオリジナル問題で、実際の試験問題ではありません。
例題1. 実行結果として正しいものを選べ。
from urllib.parse import urlencode
print(urlencode({"q": "a b"}))
- 正解q=a+b
- q=a b
- q=a%20b
- {'q': 'a b'}
解説: urlencode は既定で quote_plus を使うため、空白がプラス記号になる。%20 にしたい場合は quote_via=quote を渡す。
例題2. 標準ライブラリだけで URL にアクセスしてレスポンスを取得したい。使う関数はどれか。
- 正解urllib.request.urlopen()
- urllib.parse.urlopen()
- http.get()
- requests.get()
解説: urlopen は request サブモジュール側にある。parse は URL 文字列の解析・組み立て専用。requests はサードパーティ製なので標準ライブラリではなく、実践試験の出題範囲からも除外されている。
例題3. 実行結果として正しいものを選べ。
from urllib.parse import urlparse
r = urlparse("https://example.com/doc?id=5#top")
print(r.fragment)
- 正解top
- #top
- id=5
- /doc
解説: fragment には区切り記号の # を含まない部分が入る。query も同様に ? を含まず "id=5" になる。区切り文字は結果に残らない、と覚える。
この章は当サイトに全5問を収録しています。残りはドリルの「章別に解く」から解けます。