我是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
,无论文件类型。
我是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
,无论文件类型。
该模块提供了通过万维网获取数据的高级接口。
特别是,
urlopen()
函数类似于内置函数open()
,但接受通用资源定位符(URL)而不是文件名。有些限制适用 - 它只能打开URL进行阅读,并且没有可用的查找操作。
所以,你有这样的代码:
import urllib
content = urllib.urlopen("http://www.google.com").read()
#urllib.request.urlopen(...).read() in python 3
@jonrsharpe ty:D不知道如何缩放文档,就像你一样。 – 2014-09-24 15:02:42
没问题 - 它是引号('“'),而不是编辑视图中的大括号('{}')按钮。 – jonrsharpe 2014-09-24 15:04:24
@LuisMasuelli你可以探索社区帮助看到更多的格式化语法。十分有趣。 – stanleyxu2005 2014-09-24 15:05:18
下面的代码应满足您的需要。它将下载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)
注:
这将不起作用 - 试图用各种字符串连接“i”(这是一个整数)时'TypeError'。 – jonrsharpe 2014-09-24 14:58:21
不会'url =“http://example.com/example/”+ i'仍然串联一个字符串和整数? – 2014-09-24 15:00:25
很少的代码到目前为止是有效的Python - 缩进是非常重要的,Python中没有按”例如,你有'++'增量,你不能连接字符串和整数。你需要澄清你想要做什么 - 下载文件,抓取HTML或其他东西? – jonrsharpe 2014-09-24 14:38:25
我试图从网站下载几个文件。他们是由我的老板发送给我的视频/音频/图片/ Word文件的混合体。我正在学习编程,我问自己:为什么不写一个代码来下载所有的文件,并且一箭双飞。我正在使用python 3.4 – q8mind 2014-09-24 14:49:05
也许你应该采取更小的步骤:1.如何在给定URL的情况下下载一个文件。 2.您如何创建一系列网址。 3.你如何迭代2并将它们传递给1. – jonrsharpe 2014-09-24 14:50:49