Python:列出没有索引的网站的所有URL

时间:2016-06-15 14:26:53

标签: python url web-crawler

我可以单独访问以下每个网址:http://www.example.com/{.*}.html

然而,对主页http://www.example.com的访问受到某种程度的限制,我被重定向到显示:Erreur 403 - Refus de traitement de la requête (Interdit - Forbidden)的错误页面。

有没有办法列出该域下托管的HTML网页的所有网址?

2 个答案:

答案 0 :(得分:2)

简短的回答是否定的。您不能像列出目录一样列出该域中的所有HTML页面。假设该网站的robots.txt允许,您最好的办法是使用网络抓取模块抓取网站,例如http://scrapy.org/

答案 1 :(得分:0)

感谢Brian:我设法从域名下托管的可访问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