2012-03-02 6 views
0

私は与えられたウェブサイトからすべてのURLを抽出するためにPythonでプログラムを書いています。すべてのURLは、ページからではなくサイトからのものです。 私はそれをしたい最初の人ではないと思いますので、準備ができた解決策があるのか​​、自分でコードを書く必要があるのか​​疑問に思っていました。どのようにウェブサイトからすべてのURLを抽出するのですか?

+1

...また、 'scrapy' – inspectorG4dget

答えて

0

それは容易ではないつもりだが、まともな出発点は、これら2つのライブラリを調べるために、次のようになります。私は上でこれを行う任意の既製のスクリプトを見ていない

urllib
BeautifulSoup

+0

PyQueryもHTTPセーバー生命であるに見えます://packages.python.org/pyquery/api.html ... jQueryのようにDOMをクエリできます – bchhun

0

クイックグーグル検索。

scrapyフレームワークを使用すると、これはほとんど問題ありません。

時間のかかる部分は、治療法の使用方法を学習することです。あなたのチュートリアルは素晴らしいですが、あなたにはそれほど時間がかかりません。他の人が使用できるソリューションを作成

http://doc.scrapy.org/en/latest/intro/tutorial.html

は、プログラミングコミュニティの一員であることの喜びの一つです。私はスクレーパーが存在しないので、誰もがサイトからすべてのリンクを取得するために使用できるものを作成することができます!

+0

あなたの答えはたくさんあります – user1119429

0

与えられた答えは私が示唆したものです(+1)。

しかし、あなたが本当に迅速かつ簡単な何かをしたい、とあなたは* NIXプラットフォームにしている場合は、この試してみてください。YOUR_URLはあなたがチェックしたいURLです

lynx -dump YOUR_URL | grep http 

を。このあなたが最初urlibまたはrequestsのようなパッケージを使用して、ページのHTMLコンテンツをダウンロードする必要が(完全には書かれていないリンクを除く)もしあなたが望むすべてのリンクに

0

を取得する必要があります。

その後、Beautiful Soupを使用してURLを抽出できます。実際には、their tutorialは、具体的な例として<a>要素で囲まれたすべてのリンクを抽出する方法を示しています。

for link in soup.find_all('a'): 
    print(link.get('href')) 
# http://example.com/elsie 
# http://example.com/lacie 
# http://example.com/tillie 

あなたも<a>要素で囲まれていないリンクを見つけたい場合は、あなたがより複雑な何かを記述する必要がありますあなた自身の。

編集:私もちょうど、このタスクのために特別に作成された2つのScrapyリンク抽出クラスに出くわした:

http://doc.scrapy.org/en/latest/topics/link-extractors.html

関連する問題