2016-06-15 10 views
1

ich jede der folgenden URLs einzeln zugreifen kann: http://www.example.com/{.*}.htmlPython: Auflistung aller URLs einer Website ohne Index

jedoch der Zugriff auf die Hauptseite http://www.example.com irgendwie eingeschränkt, und ich bin auf eine Fehlerseite umgeleitet Anzeige: Erreur 403 - Refus de traitement de la requête (Interdit - Forbidden).

Gibt es eine Möglichkeit, alle URLs der HTML-Seiten aufzulisten, die unter dieser Domain gehostet werden?

Antwort

0

zu crawlen. Dank Brian: Ich habe es geschafft, Crawling von einer Liste von zugänglichen HTML-Seiten unter der gehosteten Domain.

# 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 

Und dann:

$ scrapy runspider scrap.py > urls.out 
2

Die kurze Antwort ist nein. Sie können nicht einfach alle HTML-Seiten in dieser Domäne auflisten, wenn Sie ein Verzeichnis auflisten. Angenommen, die robots.txt-Website der Website ermöglicht es, die Website mit einem Web-Crawling-Modul wie http://scrapy.org/

+0

Ich habe versucht, mit 'scrapy' konnte aber keinen Artikel Schrott. Habe die folgende Nachricht erhalten: '[scrapy] DEBUG: Telnet Konsole hört auf 127.0.0.1:6023 [scrapy] DEBUG: Crawled (403) (Referer: None) ['partially '] [scrapy] DEBUG: Antwort ignorieren <403 http://www.example.com>: HTTP-Statuscode wird nicht behandelt oder nicht erlaubt' –

+0

Sie können nicht auf eine verbotene Site zugreifen (Fehler 403). Sie müssen von http://www.example.com/index.html oder einer anderen Website starten, die viele Links enthält. Crawlen wird rekursiv zu allen Links auf der Website gehen, aber es kann immer noch nicht auf eine verbotene Seite zugreifen. – Brian

Verwandte Themen