次のように関数を記述しようとしています。
def get_urls(*urls,restrictions=None):
#here there should be some code that
#iterates through the urls and create
#a dictionary where the keys are the
#respective urls and their values are
#a list of the possible extentions. The
#function should return that dictionary.
まず、説明します。www.example.com というサイトがあり、www.example.com/faq、www.example.com/history、および www.example.com/page/2 のページしかない場合。これはアプリケーションになります:
In[1]: site = 'http://example.com'
In[2]: get_urls(site)
Out[2]: {'http://example.com':['/faq','/history','/page/2']}
私は何時間も研究に費やしてきましたが、今のところこれは不可能に思えます! それで、これを行うことができるいくつかのモジュールがありませんか? 存在するがPythonにはないものはありますか? もしそうなら、何語ですか?
ここで、なぜ があるのか疑問に思われるかもしれませんが、そのrestrictions=None
理由は次のとおりです。
許容される URL に制限を追加できるようにしたいと考えています。たとえば、restrictions='first'
が存在するページのみを実行するようにすることができます'/'
。次に例を示します。
In[3]: get_urls(site,restrictions='first')
Out[3]: {'http://example.com':['/faq','/history']}
制限のアイデアを説明し続ける必要はありませんが、その必要性は理解できます! 一部のサイト、特にソーシャル ネットワークには、写真を追加するクレイジーなアドオンがいくつかあります。すべての写真で構成される元のページを維持しながら、それらを削除することが重要です。
そうです、私はこれのためのコードを全く持っていませんが、それは私が何をすべきか見当がつかないからです! しかし、私は自分ができるようにする必要があることを明確にしたと思います。それで、これは可能ですか? はいの場合、どのように?いいえの場合、なぜですか?
編集:
いくつかの回答とコメントの後、ここにいくつかの詳細情報があります。必ずしもドメインではなく、URL を指定して、元の URL をキーとして辞書を返し、その URL のすべての拡張子のリストを項目として返します。これが私の以前の例です'example.com'
:
In[4]: site = 'http://example.com/page'
In[5]: get_urls(site)
Out[5]: {'http://example.com/page':['/2']}
クロールの例と美しいスープは素晴らしいですが、どのページにも直接リンクされていない URL がある場合、それを見つけることができません。はい、それは一般的には問題ではありませんが、できるようにしたいと思います!