問題タブ [urlparse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - urlparseとurlsplitのどちらを使用する必要がありますか?
どのURL解析関数のペアを使用する必要があり、その理由は何ですか?
urlparse
およびurlunparse
、またはurlsplit
とurlunsplit
?
python - PythonにURLの定義済みクラスはありますか?
python-modules、Django、Zope、またはPythonのどこでもjava.net.URLのようなものを探しています。関係するプログラムの分析結果は、URLがその中で重要な役割を果たしていることを示唆しているので、セマンティクスの理由からそれが望ましいです。その結果、そのようなURLクラスもそのプログラムで非常に実用的になります。
もちろん、自分でそのようなクラスを書くこともできますが、車輪の再発明を始める前に、周りを見回したいと思います。
私はurllib2とurlparseを見ました。基本的に私が必要とする機能を持っていますが、それをのurlparse
ようなクラスにカプセル化することはありませんjava.net.URL
。私のプログラムの分析に関しては、逆さまに機能します。
urlparse
クラスSplitResult
とのソースコードも調べましたParseResult
。それらにはいくつかの基本的な機能があり、サブクラス化に使用できます。ただし、残りのurlparse関数をサブクラスメソッドとして書き直す必要があります。
mxURL-Python用の柔軟なURLデータ型も見つかりました。それは私が本当に欲しいものに非常に近いです。それだけが私の目的にはかなりやり過ぎのようです。
誰かが別のオプションを提案できますか?車輪の再発明を続行する必要がありますか?
私の解決策:
URLクラスを取得するために、基本的に2つのことを行いました。
- から継承し
urlparse.ResultMixin
ます。 urlparse.urlparse()
結果を呼び出してURLインスタンスのパラメータに変換するだけの関数を定義します。
python - 保留中の非推奨警告:cgi.parse_qslは非推奨になりました。代わりに、urlparse.parse_qslを使用してください。
警告メッセージ:
警告は非常に明確ですが、SQLAlchemyの最後のバージョン(0.7、stableおよびdev)とpython 2.7を使用していると仮定した場合、なぜこれが発生したのかわかりません。
それともこれはバグですか?
どうもありがとう。
python - 必要に応じて「http://」プロトコルを URL の先頭に追加するにはどうすればよいですか?
URL を解析する必要があります。現在、urlparse.urlparse() と urlparse.urlsplit() を使用しています。
問題は、スキームが存在しない場合、URL から「netloc」(ホスト) を取得できないことです。つまり、次の URL があるとします。
www.amazon.com/Programming-Python-Mark-Lutz/dp/0596158106/ref=sr_1_1?ie=UTF8&qid=1308060974&sr=8-1
ネットロックを取得できません: www.amazon.com
Pythonのドキュメントによると:
RFC 1808 の構文仕様に従って、urlparse は「//」によって適切に導入された場合にのみ netloc を認識します。それ以外の場合、入力は相対 URL であると想定されるため、パス コンポーネントで開始されます。
というわけで、わざとこうなっています。しかし、その URL から netloc を取得する方法がまだわかりません。
スキームが存在するかどうかを確認し、存在しない場合は追加して解析できると思います。しかし、この解決策はあまり良くないようです。
もっと良いアイデアはありますか?
編集: すべての回答をありがとう。しかし、コーリーらが提案している「startswith」ということはできません。他のプロトコル/スキームの URL を取得すると、めちゃくちゃになってしまうからです。見る:
この URL を取得した場合:
提案されたコードでは、「http://」を最初に追加して、めちゃくちゃにします。
私が見つけた解決策
注意事項:
最初にいくつかの検証を行い、スキームが指定されていない場合は http:// であると見なします
python - ページ全体をダウンロードせずにWebページが存在するかどうかを確認するPythonスクリプト?
Webページの存在をテストするスクリプトを作成しようとしています。ページ全体をダウンロードせずにチェックできると便利です。
これは私の出発点です。複数の例で同じようにhttplibを使用しているのを見てきましたが、チェックするすべてのサイトは単にfalseを返します。
何か案は?
編集
誰かがこれを提案しましたが、彼らの投稿は削除されました.. urllib2はページ全体のダウンロードを回避しますか?
python - PythonでURLをリストに分割する
現在、URL の分割を含むプロジェクトに取り組んでいます。urlparse モジュールを使用して URL を分割したので、現在はパス セグメントのみを使用しています。
問題は、ディレクトリを区切るために区切り文字「/」に基づいて文字列を split() しようとすると、リストに空の文字列が表示されることです。
たとえば、次のようにすると:
リストを取得します:
これらの空の文字列は必要ありません。それらなしで新しいリストを作成することでそれらを削除できることに気づきましたが、それはずさんなようです. 空の文字列とスラッシュを削除するより良い方法はありますか?
python - URLリクエストの値のパラメータ名を取得する
次のPOSTURLでアクセスしているPythonAppEngineWebアプリクラスがあります。http://localhost:8087/moderate?5649364211118945661=on
パラメータ名を取得するにはどうすればよいですか?パラメータの値ではなく、値5649364211118945661
を含むすべてのパラメータ名のリストon
です。
たとえば、次のURLでは次のようになります。
どうすればこれを抽出できますか:
どうもありがとう。
python - スキームの後に 2 ではなく 3 '/' を返す urlparse.urlparse
欠落している場合は、特定の URL 文字列の前に「http」スキーム名を追加したいと思います。それ以外の場合は、url をそのままにしておくので、urlparse がこれを行う正しい方法だと思いました。しかし、スキームがなく、get url を使用すると、スキームとドメインの間で「//」ではなく /// が取得されます。
この URL を実際に次のように変換するにはどうすればよいですか。
python - Python で 2 つの絶対 URL を指定して、相対 URL を作成する方法
次のような URL を取得する組み込み関数はありますか:../images.html
次のようなベース URLhttp://www.example.com/faq/index.html
と、次のようなターゲット URL を指定すると、http://www.example.com/images.html
urlparse モジュールを確認しました。私が欲しいのは、urljoin() 関数に対応するものです。