Python スクレイピング

URLの構造

投稿日:2017年10月22日 更新日:

http://hoge.sample.com/category/diet?q=drink#ojousama

  • スキーム scheme httpやhttpsのようにプロトコルを表す
  • オーソリティ authority ホスト名やドメインを表す。
  • パス path ホストにおけるリソースのパスを表す。
  • クエリ query パスとは異なるリソースを表す。
  • フラグメント fragment リソース内の特定の位置を表す。

PythonでURLの解析

urllib.parse を使用する。 URL を解析して構成要素にするモジュールである。

>>> from urllib.parse import urlparse
>>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
>>> o.netloc
'www.cwi.nl:80'
>>> o.hostname
'www.cwi.nl'
>>> o.path
'/%7Eguido/Python.html'

 

しかし、例えば https://discussions.apple.com/このようなURLの場合、

>>>o.hostname
discussions.apple.com

となってしまう。
ドメインだけ取得したい場合は、さらに正規表現などで抽出する必要がある。

<参考>

https://docs.python.jp/3/library/urllib.parse.html

https://wiki.suikawiki.org/n/URL

-Python, スクレイピング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Python requestsのエラー処理

requests.exceptions.SSLError: HTTPSConnectionPool URLをクロールしていると、こんなエラーが出た。 File “/home/ty/projects/o …

no image

Windows7にjupyter notebookをインストールする

Windows7には先にPythonは入っていた。後からjupyterだけを追加する。 基本的には公式サイトhttp://jupyter.org/install.htmlに従う。 PowerShell …

no image

Python urlibなど、スクレイピングTIPS

Python urlibについて Webページを手軽に取得できる。 HTTPヘッダーのカスタマイズ、Basic認証など複雑な処理は苦手。 サードパーティライブラリのRequestsを使おう。 レスポン …

no image

Python MySQLdb.cursor.executeのリストはタプル型である

executeのSELECTはタプル型 id value 1 hoge1 2 hoge2 3 hoge3 埋め込み変数1つでもタプル型   タプル型の1要素、1項目はこう書く (値,) カン …

no image

スクレイピングで使用するlinuxコマンド

wget ファイルをダウンロードする $ wget http://www.yahoo.co.jp/ オプション 意味 例 -P 保存先ディレクトリを指定する wget -P dataset bzcat …