从网站下载文件列表

时间:2015-07-09 17:44:53

标签: python download web-scraping web-crawler python-2.6

我有一个特定的要求,我需要从网站下载100多个文件。我想下载所有这些文件,但文件名不连续(例如,www.blah.com / 1,www.blah.com / 3,www.blah.com / 4,www.blah.com / 10)。如果该链接不可用,我想浏览序列并跳过。在python中最有效的方法是什么?

2 个答案:

答案 0 :(得分:0)

假设您有正常的TCP / IP连接,可以使用以下代码

import urllib2

def download(link, filename):
  try:
    req=urllib2.urlopen(link)
  except urllib2.HTTPError:
    pass
  if req.has_data():
    open(filename,"wb").write(req.get_data())

#here goes your function that loops over
uri="http://example.com/"
for x in xrange(1, 101):
  download(uri+str(x), str(x))

只是一个例子。随便修改

答案 1 :(得分:0)

您可能需要查看Scrapy网页抓取框架。

默认情况下,如果响应状态代码为4xx或5xx,Scrapy将跳过页面。

你应该从这些方面开始:

import scrapy

class MySpider(scrapy.Spider):
    name = "my_spider"
    allowed_domains = ["domain.com"]

    def start_requests(self)
        for page in xrange(100):
            yield scrapy.Request("http://domain.com/page/{page}".format(page=page))

    def parse(self, response):
        # TODO: parse page

此外,请确保您是一位优秀的网络抓员,请参阅: