看板 Python 關於我們 聯絡資訊
是這樣的 我找到了基本的抓網頁程式 但是我想把抓到的那個網頁存成htm在我的電腦裡 我該怎麼做呢? 以下是我的程式: import sys, urllib def saveWeb3(key,name,url,sPath): url=url wp=urllib.urlopen(url) content = wp.read() --- 用 print content 可以確定有抓到 可是我想把該網頁存在電腦裡 在網路上有找到這個 把網頁拷貝到硬碟上: urllib.urlretrieve(url, filename) 可是我試了很多次還是錯誤ˊˋ 該用什麼方法呢? 請知道的人幫忙解惑一下,謝謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.217.130 ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 01:00)
seedman:fp=open('test.html','w') fp.write(content) fp.close() 09/10 01:26
不好意思,我還是不太懂~"~ 我是想要將htm檔存在C裡面 我有測試看看,可是還是IO error @@" ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 01:32)
seedman:你是沒有讀寫權限才會IO error嗎 09/10 02:30
應該不是~這個個人電腦@@" 他出現 IOError at /save/ invalid mode: w 我目前的程式碼,請問哪裡有錯嗎@@? def saveWeb3(key,name,url,sPath): url=url page = urllib.urlopen(url) content = page.read() page.close() fp=open('test.html','w') fp.write(content) fp.close() ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 03:56)
seedman:我自己試一切正常 09/10 11:39
@@~ 那請問,我是不是有什麼沒有import到?!>"< 我是用dev_appserver.py 當main module 這樣會有差嗎? 他的錯誤訊息是… 1202行 1199. def __init__(self, filename, mode='r', bufsize=-1, **kwargs): 1200. """Initializer. See file built-in documentation.""" 1201. if mode not in FakeFile.ALLOWED_MODES: 1202. raise IOError('invalid mode: %s' % mode) ... 1203. 1204. if not FakeFile.IsFileAccessible(filename): 1205. raise IOError(errno.EACCES, 'file not accessible', filename) 有人知道的拜託說一下>"< 我真的有找google找很久了一直卡在這裡:((( 還有,test.html檔要有先自己新增一個嗎? 因為都沒有輸入路徑,我在想是不是我少打了一個輸入路徑的東西?! ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 16:18)
seedman:應該是FakeFile.ALLOWED_MODES不准'r'吧 09/10 18:47
seedman:或是不准'w'? 沒打路徑就是和.py在同一個路徑 09/10 18:49
seedman:要寫的話就不用新增test.html 09/10 18:49
嗯嗯,那請問FakeFile.ALLOWED_MODES不准r,要怎麼解決呢@@?
ya790206:你是用google app engine 吧? 09/10 19:25
ya790206:Libraries that maintain databases on disk are not 09/10 19:25
ya790206:enabled in Python for Google App Engine. 09/10 19:25
對!!我是用GAE,請問GAE不能這樣寫嗎?不是都python嗎?! 那我應該怎麼做呢@@? ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 19:47)
ya790206:去Google App Engine官網找The Python Datastore API 09/10 20:03
ya790206:基於安全性等因素,GAE是被閹割過的python,詳見faq 09/10 20:04
可是,我是要把抓到的網頁,存到自己電腦~ 你說的那個,不是資料庫嗎@@~ 我的步驟是 1.使用者介面-輸入url網址、網站名稱等等 2.把上面的資料存到google app engine的資料庫 3.把該url的html檔存到電腦(我就是這步不會~) 我有把url和name都成功新增在GAE的資料庫, 但是就是抓不下來~"~ ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 20:13)
ya790206:那你該做的事情是不要用GAE ... 去抓正常的python 09/10 20:31
@@""" 用GAE沒辦法抓網頁下來存在電腦嗎@@? 我是用Eclipse+PyDev 然後是python語言 只是main module是用GAE 我剛學而己,也不確定自己這樣算是用什麼>"< 不過我是看GAE的書做的, 應該是GAE 那,用GAE沒有辦法把抓到的網頁存在電腦裡嗎? ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 20:34)
ya790206:http://www.python.org/ 正常版的python 09/10 20:37
這個我在一開始就有下載 我是這樣做的 1.抓Python2.6 安裝 2.設環境變數path 3.抓Eclipse (好像是3.6版) 安裝 4.在Eclipse中裝PyDev 5.裝Google app engine SDK 這樣應該也算有用到正常的Python 0.0" ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 20:43)
ya790206:先到preference 設定python 路徑 09/10 20:57
ya790206:開新專案選 Pydev project 09/10 20:58
ya790206:#1BBOeFMR 另外你看python的教學不要看GAE的教學比較好 09/10 21:01
有!!我一開始就有設定PYTHON的路徑 新的專案也是Pydev project run的時候也是選python run@@" ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 21:04)
ya790206:那你用筆記本寫好了...你的程式是對的,只是不能用gae跑 09/10 21:10
ya790206:你用google搜索python 教學 ,從那些教學學吧 09/10 21:16
可是我會學PYTHON的初衷是想學GAE T^T 所以GAE沒有辦法寫把網頁存在電腦的程式嗎QQ? ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 21:38)
ya790206:除非我對上面那一段英文解讀錯誤,不然是不行。 09/10 21:56
ya790206:你的目的是什麼,我想存檔只是達成你目的的一個方法吧 09/10 22:08
我目前是想做出… 輸入URL和NAME,資料可以自動存在GAE的資料庫 我的GAE目前有兩個entity web-key.url.name path-webkey(web).path 然後可以找到那個網頁,把那個網頁存在電腦,C或指定路徑 現在可以資料可以輸入資料庫,但是不能把網頁存在電腦@@~ ※ 編輯: mirror012020 來自: 218.172.217.130 (09/10 22:13)
ya790206:何不把網頁直接存在資料庫裡?欄位用db.TextProperty() 09/10 22:34
嗯!! 那我試試看!! 真的很謝謝你們兩位:) ※ 編輯: mirror012020 來自: 218.172.217.130 (09/11 02:02)