1

在现有页面(90 年初手动开发)中,我有超过 1500 个文本列表,类似于以下内容:

- Abenakis, Pancake Mix (Buckwheat), 1 kg, $4.32 Add to Cart 

及其“添加到购物车”HTML:

<a href="http://ww6.paymentcompany.com/cf/add.cfm?userid=87378855
&amp;product=Abenakis,+Pancake+Mix+(Buckwheat),+1+kg
&amp;price=4.32
&amp;scode=ABCD012
&amp;return=www.mysite.com/food.html">Add to Cart</a>

以下查询字符串随每个“添加到购物车”<a>锚点而变化:

&amp;product=Abenakis,+Pancake+Mix+(Buckwheat),+1+kg
&amp;price=4.32
&amp;scode=ABCD012

我想提取 URL 中的所有元素并将它们保存在 DB 表中,然后我可以以非列表方式显示它们。

我想过使用 Nokogiri,但根据我的尝试,我没有得到它。

有没有一种简单的方法可以做到这一点?

4

1 回答 1

5

首先,您可以使用来解析您的 URLURI.parse以分离出查询词。然后,您可以根据自己的喜好创建哈希URI::decode_www_form并使用查询词:

uri = URI.parse("http://ww6.paymentcompany.com/cf/add.cfm?userid=87378855&product=Abenakis,+Pancake+Mix+(Buckwheat),+1+kg&price=4.32&scode=ABCD012&return=www.mysite.com/food.html")
Hash[URI::decode_www_form(uri.query)]
# => {"userid"=>"87378855", "product"=>"Abenakis, Pancake Mix (Buckwheat), 1 kg", "price"=>"4.32", "scode"=>"ABCD012", "return"=>"www.mysite.com/food.html"} 
于 2013-10-24T18:12:10.017 回答