2017-05-29 5 views
0

ウェブサイトのhrefの第1レベルのみを取得する必要があります。たとえば:http://www.example.com/は私が開いて読む必要があるウェブサイトです。私はページを開いてhrefを収集し、/ company/organization、/ company/globallocations、/ company/newsroom、/ contact、/ sitemapなどのすべてのリンクを取得しました等々。Pythonを使用してウェブページの第1レベルのhrefのみを集める

以下はPythonコードです。

req = urllib2.Request(domain) 
response = urllib2.urlopen(req) 
soup1 = BeautifulSoup(response,'lxml') 
for link in soup1.find_all('a',href = True): 
    print link['href'] 

私の所望の出力は、親切に助けて、私に解決策を提案し、ウェブサイトwww.example.com

ため

/会社/連絡先/サイトマップです。

答えて

0

最初のレベルコンセプトが明確ではありませんあなたは1 /HREFリンクは最初のレベルであると信じている場合、単にどのように多くの/HREFテキスト内をカウントし、それを維持するか、それをドロップ決めます。

ウェブページの観点から見ると、ホームページ内のすべてのリンクは、第1レベルのとみなす必要があります。この場合、レベルカウンタの作成が必要になることがあります。レベルカウンタは、クローラがどれだけ深く/どれくらい深く入るかをカウントし、特定のレベルで停止します。

希望に役立ちます。

+0

ありがとうございます@中大。私は最初のレベルが**/**とのリンクになることを意味しました。同様に収集することは可能ですか? www.company.com/company/organizationの代わりにwww.example.com/companyを収集してください。 – NiviSRa

+0

私が言ったように、あなたがルールがとてもシンプルであると確信しているならば、最後の** /何か**を削除してください。これはPythonで簡単に行うことができます。**/something **なしで最初の部分を取得するために 'os.path.dirname(url)'を使うことさえできます。 –

関連する問題