V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
werrone
V2EX  ›  问与答

现在网站都采用了伪静态化,如何判断url的唯一性?

  •  
  •   werrone · 2012-05-17 12:34:39 +08:00 · 3812 次点击
    这是一个创建于 4603 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个例子,京东商城的iphone商品页是 http://www.360buy.com/product/539348.html

    但实际上在这个url后面加任何参数都可以打开而不是返回404,比如

    http://www.360buy.com/product/539348.htmlaaaaaaaa

    http://www.360buy.com/product/539348.html?=bbb

    现在我打算开个网站平台,用户可以在我的网站上提交各种商品页的URL来推广(当然一个商品页只能发布一次)

    比如用户A发布了京东iphone的URL(http://www.360buy.com/product/539348.html),另一个用户B再发布这个URL,系统应该提示他已发布过。
    问题来了,如果这个用户在URL后面加参数比如 http://www.360buy.com/product/539348.html?=bbb 系统该如何识别URL的唯一性呢?
    15 条回复    1970-01-01 08:00:00 +08:00
    avatasia
        1
    avatasia  
       2012-05-17 13:02:37 +08:00
    去掉最后一个?后面的所有字符
    clippit
        2
    clippit  
       2012-05-17 13:31:50 +08:00
    我觉得没有通用的方法,只能针对每个站来做特定的匹配。京东的就是那个ID唯一,构成一个形式的URL。加问号参数好办,但是像htmlaaaaaaaa这种就坑爹了。
    iiduce
        3
    iiduce  
       2012-05-17 13:37:44 +08:00   ❤️ 1
    你可以直接提示用户 url无效。

    因为这个url用户自己都无法访问,为什么要提交?
    westy
        4
    westy  
       2012-05-17 13:52:14 +08:00
    在用户填入之后,后台去抓取一下这个url的内容,做内容重复判断?比如title。
    werrone
        5
    werrone  
    OP
       2012-05-17 14:12:43 +08:00
    hanqian
        6
    hanqian  
       2012-05-17 14:14:47 +08:00
    既然只能在后面加参数,那么只要从开头到“.html”为止的部分内容一样,就可以判断出 URL 是重复的。
    dongbeta
        7
    dongbeta  
       2012-05-17 14:15:54 +08:00
    我认为,你的思路应该从”如何判断URL唯一性“转到”出现这种问题后如何快速作出反应“。
    cutehalo
        8
    cutehalo  
       2012-05-17 14:20:18 +08:00
    product/539348.html
    抓取这个product的数字ID吧
    avatasia
        9
    avatasia  
       2012-05-17 14:27:01 +08:00
    @westy 同意这个做法,但是这个最好全文,但是全文呢,数据量太大,不如做hash保存。
    westy
        10
    westy  
       2012-05-17 14:35:51 +08:00
    @avatasia hash的问题在于,很多商品页面上有评论,即使没有评论,广告部分的内容会产生变化。所以hash出来的值并不靠谱。
    avatasia
        11
    avatasia  
       2012-05-17 14:53:18 +08:00
    @westy title这个也不好作为依准,楼主只是拿京东做个例子,当然也有可能就是绕个弯子,文件日期这个行不行?
    chztv
        12
    chztv  
       2012-05-17 15:06:15 +08:00
    我觉得思路换一个吧,URL不能做唯一性的判断标准,换用其他的参数,比如商品名称或者商品编号。将用户提交的商品编号来与目前有的商品编号来做判断,当然这个可能不如url直接判断方便。
    werrone
        13
    werrone  
    OP
       2012-05-18 18:17:26 +08:00
    @chztv 商品名称也会变,比较商品编号倒是可以考虑
    zern
        14
    zern  
       2012-05-18 18:26:34 +08:00
    lackrp
        15
    lackrp  
       2012-05-18 18:56:35 +08:00
    1. 不知道楼主是不是只做国内。如果是的话,可以用一个网站一个规则的方法来做。这样的好处是:
    (1) 准确率高
    (2) 方便将网页内容转化为结构化数据,如果你的网站需要展示商品的某些属性时,可以方便的从网页中抽取出来
    有时候做有限个specific的solution,要比尝试做一个general的solution好得多。Done is better than perfect.

    2. 如果一定要general的方法的话,我有个比较tricky的方法,你可以找网页中的主要的图片,但我觉得准确率恐怕还是不够理想
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:41 · PVG 08:41 · LAX 16:41 · JFK 19:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.