我有一个特定的要求,我需要从网站下载100多个文件。我想下载所有这些文件,但文件名不连续(例如,www.blah.com / 1,www.blah.com / 3,www.blah.com / 4,www.blah.com / 10)。如果该链接不可用,我想浏览序列并跳过。在python中最有效的方法是什么?
答案 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
此外,请确保您是一位优秀的网络抓员,请参阅: