如何使用Python 3下载网站?

18

我只需要一个类似于PHP中的file_get_contents的HTTP GET请求,或者像输入URL并将其内容获取到变量中这样简单的东西。


2
http://docs.python.org/py3k/library/urllib.request.html - Ignacio Vazquez-Abrams
2个回答

31

使用 urllib:

from urllib.request import urlopen
html = urlopen("http://www.stackoverflow.com/").read().decode('utf-8')
print(html)

1
你不能假设它是UTF-8编码。要么不解码,要么检查头文件。 - Lennart Regebro
2
这仅仅获取HTML。有没有一种方式可以获取图片、外部JS文件和其他东西?还是我们只能通过HTML并查找标签,因为在某些网站上这需要一些时间。 - rassa45
3
使用 import requests 代替其他方法可以解决 SSLCertVerificationError 错误。 - MrMartin

0

您的意图似乎是获取网站的静态版本。这可以使用WGET实现。该工具可以在一个命令中检索给定URL的文件。 请谨慎使用-r(递归)参数,例如:

wget -erobots=off -p -H -k -E -w 1 --random-wait -r -l 1 http://your.site

下载网页的本地副本以供使用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接