hmm wasnt too sure how to make the subject both concise and
understandable at the same time so my apologies if i was vague.
I searched under "ignore missing" but didnt come up wiht anything.
Perhaps someone can help me.
Im using open-uri to fetch the html from various ebay webpages.
Basically the results for certain categories. I have all the relevant
urls tucked into an array of hashes eg. Computers =>
www.ebay.blah.blah.blah
I then cycle through the array feeding open uri the urls and doing my
biz on the html one by one.
However sometimes there are no products for a certain category for that
given day (im focussing on products located in japan so the number of
results is drastically reduced) so when open uri complains like this
ebay.rb:71:in `read': No such file or directory -
http://research.ebay.co.uk/ws/
search/GetSaleAnalysis?sojs=0&salic=104&sacqyop=9&sacqy=1000&sacat=13851&ftrv=17
&fis=2&fts=-1&fn=4&frts=0&sc=AvgSoldPrice&showdiag=0&soexpand=1&soraw=0
(Errno::
ENOENT)
Im fine with it complaining but it stops the programme. How do i make it
simply skip/ignore such urls and move on to the next one in the hash?
any help greatly appreciated.
···
--
Posted via http://www.ruby-forum.com/.
Wrapping the call to open in a begin/rescue pair should do what you want:
begin open( url )
rescue SystemCallError
end
I hope this helps
Stefano
···
On Monday 18 August 2008, Adam Akhtar wrote:
hmm wasnt too sure how to make the subject both concise and
understandable at the same time so my apologies if i was vague.
I searched under "ignore missing" but didnt come up wiht anything.
Perhaps someone can help me.
Im using open-uri to fetch the html from various ebay webpages.
Basically the results for certain categories. I have all the relevant
urls tucked into an array of hashes eg. Computers =>
www.ebay.blah.blah.blah
I then cycle through the array feeding open uri the urls and doing my
biz on the html one by one.
However sometimes there are no products for a certain category for that
given day (im focussing on products located in japan so the number of
results is drastically reduced) so when open uri complains like this
ebay.rb:71:in `read': No such file or directory -
http://research.ebay.co.uk/ws/
search/GetSaleAnalysis?sojs=0&salic=104&sacqyop=9&sacqy=1000&sacat=13851&ft
rv=17
&fis=2&fts=-1&fn=4&frts=0&sc=AvgSoldPrice&showdiag=0&soexpand=1&soraw=0
(Errno::
ENOENT)
Im fine with it complaining but it stops the programme. How do i make it
simply skip/ignore such urls and move on to the next one in the hash?
any help greatly appreciated.
You might want to rescue just Errno::ENOENT.
I often do:
rescue Timeout::Error, OpenURI::HTTPError, Errno::ENOENT
for this kind of thing.
-Rob
Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
···
On Aug 18, 2008, at 10:40 AM, Stefano Crocco wrote:
On Monday 18 August 2008, Adam Akhtar wrote:
hmm wasnt too sure how to make the subject both concise and
understandable at the same time so my apologies if i was vague.
I searched under "ignore missing" but didnt come up wiht anything.
Perhaps someone can help me.
Im using open-uri to fetch the html from various ebay webpages.
Basically the results for certain categories. I have all the relevant
urls tucked into an array of hashes eg. Computers =>
www.ebay.blah.blah.blah
I then cycle through the array feeding open uri the urls and doing my
biz on the html one by one.
However sometimes there are no products for a certain category for that
given day (im focussing on products located in japan so the number of
results is drastically reduced) so when open uri complains like this
ebay.rb:71:in `read': No such file or directory -
http://research.ebay.co.uk/ws/
search/GetSaleAnalysis?sojs=0&salic=104&sacqyop=9&sacqy=1000&sacat=13851&ft
rv=17
&fis=2&fts=-1&fn=4&frts=0&sc=AvgSoldPrice&showdiag=0&soexpand=1&soraw=0
(Errno::
ENOENT)
Im fine with it complaining but it stops the programme. How do i make it
simply skip/ignore such urls and move on to the next one in the hash?
any help greatly appreciated.
Wrapping the call to open in a begin/rescue pair should do what you want:
begin open( url )
rescue SystemCallError
end
I hope this helps
Stefano