2016-06-15 3 views
1

せずに、ウェブサイトのすべてのURLを一覧表示することは、私が個別に以下のURLのそれぞれにアクセスすることができます。http://www.example.com/{.*}.htmlパイソン:インデックス

メインページhttp://www.example.comへのアクセスが何らかの形で制限されていると私は表示されたエラーページにリダイレクトしていますが。 Erreur 403 - Refus de traitement de la requête (Interdit - Forbidden)

そのドメインでホストされているHTMLページのすべてのURLを一覧表示する方法はありますか?

答えて

0

など)を使用してウェブサイトをクロールするのが最善の方法です。ブライアンのおかげで、その下にホストされているアクセス可能なHTMLページのリストからクロールを開始しました。ドメイン。

# scrap.py 

from scrapy.spiders import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 

class MySpider(CrawlSpider): 
    name = 'example.com' 
    allowed_domains = ['example.com'] 
    start_urls = [ 
     'http://www.example.com/***.html' # Accessible URL 
    ] 

    rules = (
     Rule(LinkExtractor(allow=('\.html',)), callback='parse_item', follow=True), 
    ) 

    def parse_item(self, response): 
     print response.url 

そして:

$ scrapy runspider scrap.py > urls.out 
2

短い答えはノーです。ディレクトリを一覧表示するように、そのドメイン内のすべてのHTMLページを一覧表示することはできません。ウェブサイトのrobots.txtで許可されているとすれば、ウェブクロールモジュール(http://scrapy.org/

+0

私はscrapy' 'と試みたが、いずれかの項目をスクラップことができませんでした。 DEBUG:Telnetコンソールは、127.0.0.1:6023を受信して​​います。 [scrapy] DEBUG:クロール済み(403)(referer:なし)['partial '] [scrapy] DEBUG:レスポンスを無視する<403 http://www.example.com>:HTTPステータスコードが処理されないか許可されません。' –

+0

禁止されたサイトにアクセスすることはできません(エラー403)。あなたは、http://www.example.com/index.htmlや、そこにたくさんのリンクがある他のサイトから始める必要があります。クロールは再帰的にウェブサイトのすべてのリンクに行きますが、依然として禁止サイトにアクセスすることはできません。 – Brian