2013-07-31 10 views
7

を完全なURLを取得するには美しいスープを使用したので、私はいくつかのソースコードを見ていたと私は今、ソースコード内のリンクは青であり、あなたがクリックしたときに、コードソースコードに

<img src="/gallery/2012-winners-finalists/HM_Watching%20birds2_Shane%20Conklin_MA_2012.jpg" 

のこのビットに出くわしましたそれは、その画像がある完全なURLにあなたを連れて行く、私は美しいスープを使用してPythonでソースコードに表示されるものを得る方法を知っている私はあなたが一度リンクをクリックして取得する完全なURLを取得する方法ソースコード?

編集: 私が与えられた場合<a href = "/folder/big/a.jpg"どのようにあなたはpythonまたは美しいスープを介してそのURLの開始部分を把握していますか?

+7

あなたはhtmlを投稿できますか? – Sudipta

答えて

14
<a href="/folder/big/a.jpg"> 

これは、現在のホストの絶対アドレスです。 HTMLファイルがhttp://example.com/foo/bar.htmlにあるのであれば、そのURL /folder/big/a.jpgを適用すると、このになります:

http://example.com/folder/big/a.jpg 

すなわち、ホスト名をとり、新しいパスを適用します。

>>> from urllib.parse import urljoin 
>>> base = 'http://example.com/foo/bar.html' 
>>> href = '/folder/big/a.jpg' 
>>> urljoin(base, href) 
'http://example.com/folder/big/a.jpg' 

Pythonの2の場合、関数はurlparseモジュール内にある:

Pythonはあなたのためこの操作を実行するための組み込みurljoin機能を持っています。

+0

(ホストと相対/絶対URLへの参加については、http://stackoverflow.com/questions/8223939/how-to-join-absolute-and-relative-urlsを参照してください)。 –

+0

jpgがhttp://example.com/foo/folder/big/a.jpgにある場合はどうなりますか? – user2476540

+0

@ user2476540 'a'タグで指定されたURLが間違っています。上で説明したのは、スラッシュで相対URLを見たときにブラウザがどのように動作するかです。 – poke