make it ruby1.9 compatible, allow redirection, use common mouser site
This commit is contained in:
parent
51cdc31528
commit
887ccdbf55
|
@ -6,6 +6,7 @@ Rakefile to manage gEDA hardware projects
|
||||||
require 'rake/clean'
|
require 'rake/clean'
|
||||||
require 'csv' # to export BOM and costs
|
require 'csv' # to export BOM and costs
|
||||||
require 'open-uri' # to parse URLs
|
require 'open-uri' # to parse URLs
|
||||||
|
require 'open_uri_redirections' # allow redirections
|
||||||
require 'nokogiri' # to scrape sites
|
require 'nokogiri' # to scrape sites
|
||||||
require 'net/http' # to ask octopart
|
require 'net/http' # to ask octopart
|
||||||
require 'json' # to parse octopart reponses
|
require 'json' # to parse octopart reponses
|
||||||
|
@ -242,7 +243,7 @@ def scrape_farnell(sku)
|
||||||
# get stock
|
# get stock
|
||||||
stock_doc = doc.xpath('//td[@class="prodDetailAvailability"]')[0]
|
stock_doc = doc.xpath('//td[@class="prodDetailAvailability"]')[0]
|
||||||
if stock_doc then
|
if stock_doc then
|
||||||
to_return[:stock] = stock_doc.text.lines[-1].to_i
|
to_return[:stock] = stock_doc.text.lines.to_a[-1].to_i
|
||||||
else # when several stocks are available
|
else # when several stocks are available
|
||||||
stock_doc = doc.xpath('//div[@class="stockDetail"]')[0]
|
stock_doc = doc.xpath('//div[@class="stockDetail"]')[0]
|
||||||
to_return[:stock] = stock_doc.text.gsub(".","").scan(/\d+/)[-1].to_i # the last match should be for EU
|
to_return[:stock] = stock_doc.text.gsub(".","").scan(/\d+/)[-1].to_i # the last match should be for EU
|
||||||
|
@ -262,8 +263,8 @@ end
|
||||||
def scrape_mouser(sku)
|
def scrape_mouser(sku)
|
||||||
to_return = {stock: nil, currency: "EUR", prices: []}
|
to_return = {stock: nil, currency: "EUR", prices: []}
|
||||||
# get page
|
# get page
|
||||||
url = "http://de.mouser.com/Search/ProductDetail.aspx?R=0virtualkey0virtualkey#{sku}"
|
url = "http://www.mouser.com/Search/ProductDetail.aspx?R=0virtualkey0virtualkey#{sku}"
|
||||||
doc = Nokogiri::HTML(open(URI.escape(url)))
|
doc = Nokogiri::HTML(open(URI.escape(url),:allow_redirections => :all))
|
||||||
# get stock
|
# get stock
|
||||||
stock_doc = doc.xpath('//table[contains(@id,"availability")]/tr/td')[0]
|
stock_doc = doc.xpath('//table[contains(@id,"availability")]/tr/td')[0]
|
||||||
to_return[:stock] = stock_doc.text.gsub(".","").to_i
|
to_return[:stock] = stock_doc.text.gsub(".","").to_i
|
||||||
|
|
Loading…
Reference in New Issue