2012-02-27 50 views
0

在我网站的某些部分,我会允许用户输入一个URL。我正在研究appengine,所以我在想,就是像这样验证它。这种URL验证会有什么缺点

try 
    response = urlfetch.fetch(url,follow_redirects=True, deadline=1) 
    if not response.status_code==200: 
     raise SomeCustomException 
except: Exception as e: 
    my_exception_handling_code(e) 

优势

  • 检查URL模式自动
  • 也可以确保网址没有损坏和加载时间超过1s不再,帮助确保良好的用户体验时,点击我网站上的链接。

可能的缺点,我可以看到:

  • 请求必须等待取来完成。这可能不是一个大问题,因为很少有用户可以输入URL的场合(目前仅在注册时)。
+0

解决了。 thxx让我知道。 – bigblind 2012-02-27 20:55:10

+0

你为什么不使用'urlparse'模块?从URL加载一个页面并不能告诉你很多,因为链接的活跃度来了又去。由于链接可能会在您检查后立即死掉,您希望用这个链接完成什么?什么是用例? – 2012-02-27 20:58:07

+0

你是对的,链接可能在输入后立即中断,链接可能需要更长时间才能加载,但这在大多数情况下不会发生,也不会出现只能从某个子网络访问URL的情况。该网站的建立是为了让技术娴熟的观众,所以我不希望人们在那里输入太多奇怪的东西(我知道他们可以)。链接最终会打破,但我希望它会保持大多数可避免的404和缓慢加载页面。 – bigblind 2012-02-27 21:36:23

回答

2

这是一个坏主意。正如S.洛特所指出的,网址现在可能无法使用。或者它可能只能从一些特定的子网络中获得。或者它需要超过1秒才能加载。只是不要这样做。使用传统的方法,例如urlparse

1

如果您网站的用户发现每次发布URL都会轮询一次URL,他们可能会将其用于其他目的,如投票投票或收取浏览量。