作者mirror012020 (小B)
看板Python
标题[问题] 请问抓网页之後要怎麽存?!
时间Thu Sep 9 23:54:02 2010
是这样的
我找到了基本的抓网页程式
但是我想把抓到的那个网页存成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)
1F:推 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)
2F:推 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)
3F:推 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)
4F:推 seedman:应该是FakeFile.ALLOWED_MODES不准'r'吧 09/10 18:47
5F:→ seedman:或是不准'w'? 没打路径就是和.py在同一个路径 09/10 18:49
6F:→ seedman:要写的话就不用新增test.html 09/10 18:49
嗯嗯,那请问FakeFile.ALLOWED_MODES不准r,要怎麽解决呢@@?
7F:推 ya790206:你是用google app engine 吧? 09/10 19:25
8F:→ ya790206:Libraries that maintain databases on disk are not 09/10 19:25
9F:→ ya790206:enabled in Python for Google App Engine. 09/10 19:25
对!!我是用GAE,请问GAE不能这样写吗?不是都python吗?!
那我应该怎麽做呢@@?
※ 编辑: mirror012020 来自: 218.172.217.130 (09/10 19:47)
10F:推 ya790206:去Google App Engine官网找The Python Datastore API 09/10 20:03
11F:→ 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)
12F:推 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)
这个我在一开始就有下载
我是这样做的
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)
14F:推 ya790206:先到preference 设定python 路径 09/10 20:57
15F:→ ya790206:开新专案选 Pydev project 09/10 20:58
16F:→ ya790206:#1BBOeFMR 另外你看python的教学不要看GAE的教学比较好 09/10 21:01
有!!我一开始就有设定PYTHON的路径
新的专案也是Pydev project
run的时候也是选python run@@"
※ 编辑: mirror012020 来自: 218.172.217.130 (09/10 21:04)
17F:→ ya790206:那你用笔记本写好了...你的程式是对的,只是不能用gae跑 09/10 21:10
18F:→ ya790206:你用google搜索python 教学 ,从那些教学学吧 09/10 21:16
可是我会学PYTHON的初衷是想学GAE T^T
所以GAE没有办法写把网页存在电脑的程式吗QQ?
※ 编辑: mirror012020 来自: 218.172.217.130 (09/10 21:38)
19F:→ ya790206:除非我对上面那一段英文解读错误,不然是不行。 09/10 21:56
20F:→ 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)
21F:→ ya790206:何不把网页直接存在资料库里?栏位用db.TextProperty() 09/10 22:34
嗯!!
那我试试看!!
真的很谢谢你们两位:)
※ 编辑: mirror012020 来自: 218.172.217.130 (09/11 02:02)