我已经阅读了很多关于网络抓取的答案,谈论了BeautifulSoup,Scrapy e.t.c.执行网络抓取。
有没有办法相当于从网络浏览器中保存网页的来源?
也就是说,Python中有没有一种方法可以将它指向一个网站并让它将页面的源代码保存到一个只有标准Python模块的文本文件中?
这是我到达的地方:
import urllib
f = open('webpage.txt', 'w')
html = urllib.urlopen("http://www.somewebpage.com")
#somehow save the web page source
f.close()
我不知道 - 但是寻找代码来实际拉取页面的来源以便我可以编写它。我知道,你只是建立联系。
也许有一个readlines()等效于读取网页的行?
答案 0 :(得分:30)
您可以尝试urllib2
:
import urllib2
page = urllib2.urlopen('http://stackoverflow.com')
page_content = page.read()
with open('page_content.html', 'w') as fid:
fid.write(page_content)
答案 1 :(得分:3)
更新了Python 3的代码(不推荐使用urllib2):
from urllib.request import urlopen
html = urlopen("http://www.google.com/")
with open('page_content.html', 'w') as fid:
fid.write(html)
答案 2 :(得分:0)
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)