2014-09-24 48 views
-2

我是Python新手,想弄清楚如何编写一个脚本来下载HTML页面的内容。我想在做类似的:使用python下载几个html页面的内容

Y = 0 
X = "example.com/example/" + Y 
While Y != 500: 
(code to download file), Y++ 
if Y == 500: 
break 

所以(Y)是文件名,我需要从example.com/example/1下载文件,一路直到文件编号500,无论文件类型。

+3

很少的代码到目前为止是有效的Python - 缩进是非常重要的,Python中没有按”例如,你有'++'增量,你不能连接字符串和整数。你需要澄清你想要做什么 - 下载文件,抓取HTML或其他东西? – jonrsharpe 2014-09-24 14:38:25

+0

我试图从网站下载几个文件。他们是由我的老板发送给我的视频/音频/图片/ Word文件的混合体。我正在学习编程,我问自己:为什么不写一个代码来下载所有的文件,并且一箭双飞。我正在使用python 3.4 – q8mind 2014-09-24 14:49:05

+1

也许你应该采取更小的步骤:1.如何在给定URL的情况下下载一个文件。 2.您如何创建一系列网址。 3.你如何迭代2并将它们传递给1. – jonrsharpe 2014-09-24 14:50:49

回答

0

阅读本official docs page

该模块提供了通过万维网获取数据的高级接口。

特别是,urlopen()函数类似于内置函数open(),但接受通用资源定位符(URL)而不是文件名。

有些限制适用 - 它只能打开URL进行阅读,并且没有可用的查找操作。

所以,你有这样的代码:

import urllib 
content = urllib.urlopen("http://www.google.com").read() 
#urllib.request.urlopen(...).read() in python 3 
+0

@jonrsharpe ty:D不知道如何缩放文档,就像你一样。 – 2014-09-24 15:02:42

+0

没问题 - 它是引号('“'),而不是编辑视图中的大括号('{}')按钮。 – jonrsharpe 2014-09-24 15:04:24

+0

@LuisMasuelli你可以探索社区帮助看到更多的格式化语法。十分有趣。 – stanleyxu2005 2014-09-24 15:05:18

0

下面的代码应满足您的需要。它将下载500个网页内容并将其保存到磁盘。

import urllib2 

def grab_html(url): 
    response = urllib2.urlopen(url) 
    mimetype = response.info().getheader('Content-Type') 
    return response.read(), mimetype 

for i in range(500): 
    filename = str(i) # Use digit as filename 
    url = "http://example.com/example/{0}".format(filename) 
    contents, _ = grab_html(url) 
    with open(filename, "w") as fp: 
     fp.write(contents) 

注:

+0

这将不起作用 - 试图用各种字符串连接“i”(这是一个整数)时'TypeError'。 – jonrsharpe 2014-09-24 14:58:21

+0

不会'url =“http://example.com/example/”+ i'仍然串联一个字符串和整数? – 2014-09-24 15:00:25