Python 保存网页源代码的固有方法

Python 保存网页源代码的固有方法,python,web-scraping,Python,Web Scraping,我已经阅读了很多关于网页抓取的答案,其中谈到了BeautifulSoup,Scrapy e.t.c.来执行网页抓取 有没有一种方法可以相当于从web浏览器保存页面的源代码 也就是说,Python中有没有一种方法可以将它指向一个网站,并让它将页面的源代码保存到一个文本文件中,而只使用标准的Python模块 这就是我要说的: import urllib f = open('webpage.txt', 'w') html = urllib.urlopen("http://www.somewebpag

我已经阅读了很多关于网页抓取的答案,其中谈到了BeautifulSoup,Scrapy e.t.c.来执行网页抓取

有没有一种方法可以相当于从web浏览器保存页面的源代码

也就是说,Python中有没有一种方法可以将它指向一个网站,并让它将页面的源代码保存到一个文本文件中,而只使用标准的Python模块

这就是我要说的:

import urllib

f = open('webpage.txt', 'w')
html = urllib.urlopen("http://www.somewebpage.com")

#somehow save the web page source

f.close()
我知道的不多,但我正在寻找代码来实际提取页面的源代码,以便编写它。我推测urlopen只是建立了一个连接


也许有一个readlines()等价物用于阅读网页的行

您可以尝试
urlib2

import urllib2

page = urllib2.urlopen('http://stackoverflow.com')

page_content = page.read()

with open('page_content.html', 'w') as fid:
    fid.write(page_content)

更新了Python 3的代码(不推荐使用urllib2):


来自SoHei的答案将不起作用,因为它缺少html.read(),并且必须使用“wb”参数打开文件,而不仅仅是一个“w”。“b”表示数据将以二进制模式写入(因为.read()返回字节序列)。 完全有效的代码是:

from urllib.request import urlopen
html = urlopen("http://www.google.com/")
page_content = html.read()
with open('page_content.html', 'wb') as fid:
     fid.write(page_content)

欢迎来到堆栈溢出!我们鼓励你这样做。如果您有,请将其添加到问题中-如果没有,请先研究并尝试您的问题,然后再回来。谢谢!我还是很新的网站,所以很抱歉,如果我接近这个错误的方式。将添加一些我到达的位置的代码:)为了避免编码问题,请将
与open('page_content.html,'wb')一起用作fid:
错误:TypeError:write()参数必须是str,而不是HTTPResponseThis检索的内容与我导航到目标页面和“查看页面源代码”时的内容不同-不确定这是否是我正在查看的页面特有的问题(需要登录,并且页面源代码具有脚本和嵌入的json,在读取和保存时不会显示,如上所述)。
from urllib.request import urlopen
html = urlopen("http://www.google.com/")
page_content = html.read()
with open('page_content.html', 'wb') as fid:
     fid.write(page_content)