On Wednesday, January 30, 2019 at 5:16:59 PM UTC-5, Colin Law wrote:
>
> On Wed, 30 Jan 2019 at 22:12, Colin Law <cla...@gmail.com <javascript:>> 
> wrote: 
> > 
> > On Wed, 30 Jan 2019 at 22:09, fugee ohu <fuge...@gmail.com <javascript:>> 
> wrote: 
> > > 
> > > 
> > > 
> > > On Wednesday, January 30, 2019 at 5:02:17 PM UTC-5, Colin Law wrote: 
> > >> 
> > >> On Wed, 30 Jan 2019 at 21:56, fugee ohu <fuge...@gmail.com> wrote: 
> > >> > ... 
> > >> > Everything in the unparsed resonse body that I want is between [ 
> and ] I have to gsub it out 
> > >> 
> > >> 
> > >> No you don't.  After you get parsed_obj["results] (which is an array, 
> > >> that's what the [] mean) then you can get the first product by 
> > >> parsed_obj["results"][0]["productId"] 
> > >> It is just an array.  You have met ruby arrays haven't you? 
> > >> 
> > >> I am rapidly losing the will to live. 
> > >> 
> > >> Colin 
> > > 
> > > 
> > > The response body isn't JSON.parse parsable as is it has to be gsub'd 
> and chomped first before I can run JSON.parse My original gsub wasn't right 
> it wasn't removing the end that follows ] 
> > > JSON::ParserError: 784: unexpected token at 
> 'myscript.js({"success":true,"code 
> > 
> > You previously posted that you had got parsed_obj where 
> > parsed_obj["results]  was an array.  Go back to that. 
>
> To quote your previous message 
>
> >puts parsed_obj["results"]  shows the entire results but `puts 
> parsed_obj["results"]["productId"] gets me error no implicit 
> > conversion of String into Integer 
>
> The error is because it is an array, which is perfectly obvious if you 
> look at the unparsed string. So if you use 
> parsed_obj["results"][0] 
> you will get the first element 
>
> Colin 
>

There are scripts in the browser page source that pass a lot of useful 
values like this
<script type="text/javascript">
if(!window.runParams) {
window.runParams = {};
}
window.runParams.minPrice="44.98";
window.runParams.maxPrice="44.98";
               ...
And more within definitions in the same script like this
var 
skuProducts=[{"skuAttr":"14:1052","skuPropIds":"1052","skuVal":{"actSkuCalPrice":"20.24","actSkuMultiCurrencyCalPrice":"20.24","actSkuMultiCurrencyDisplayPrice":"20.24","availQuantity":29,"inventory":30,"isActivity":true,"skuCalPrice":"44.98","skuMultiCurrencyCalPrice":"44.98","skuMultiCurrencyDisplayPrice":"44.98"}},{"skuAttr":"14:173","skuPropIds":"173","skuVal":{"actSkuCalPrice":"20.24","actSkuMultiCurrencyCalPrice":"20.24","actSkuMultiCurrencyDisplayPrice":"20.24","availQuantity":26,"inventory":30,"isActivity":true,"skuCalPrice":"44.98","skuMultiCurrencyCalPrice":"44.98","skuMultiCurrencyDisplayPrice":"44.98"}}];
        var GaData = {
        pageType: "product",
        productIds: "en32837801078",
        totalValue: "US $20.24"
    };

Since it's in <script> containers in page source can I parse it?

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/34c54fd0-575a-412f-bf21-d874d30853c2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to