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

2012-05-17 12:34:39 +08:00
 werrone
举个例子,京东商城的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的唯一性呢?
3814 次点击
所在节点    问与答
15 条回复
avatasia
2012-05-17 13:02:37 +08:00
去掉最后一个?后面的所有字符
clippit
2012-05-17 13:31:50 +08:00
我觉得没有通用的方法,只能针对每个站来做特定的匹配。京东的就是那个ID唯一,构成一个形式的URL。加问号参数好办,但是像htmlaaaaaaaa这种就坑爹了。
iiduce
2012-05-17 13:37:44 +08:00
你可以直接提示用户 url无效。

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

2. 如果一定要general的方法的话,我有个比较tricky的方法,你可以找网页中的主要的图片,但我觉得准确率恐怕还是不够理想

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/36298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX