2015-07-20 86 views
1

我一直在使用機械化寶石從craigslist中抓取數據,我有一段代碼將多個圖像上傳到craigslist,所有的文件路徑都是正確的,但只有單個圖像被多次上傳什麼原因。只有一個圖像上傳多次

unless pic_url_arry.blank? 
     unless page.links_with(:text => 'Use classic image uploader').first.blank? 
      page = page.links_with(:text => 'Use classic image uploader').first.click 
     end 
     puts "After classic image uploader" 
     form = page.form_with(class: "add") 
     # build full file path before setting like this => file = File.join(APP_ROOT, 'tmp', 'image.jpg') 
     i = 0 
     pic_url_arry = pic_url_arry.shuffle 
     pic_url_arry.each do |p| 
      form.file_uploads.first.file_name = p 
      i+= 1 
      page = form.submit 
      puts "******#{p.inspect}*******" 
      puts "******#{page.inspect}*******" 
     end unless pic_url_arry.blank? 
     # check if the file uploaded sucessfully with no. of files with no. of imgbox on page. 
     check_image_uploaded = page.at('figure.imgbox').count 
     if check_image_uploaded.to_i == i.to_i 
      # upload failure craiglist or net error. 
     end 
     end 

和PIC陣列具有值[ 「/home/codebajra/www/office/autocraig/public/uploads/posting_pic/pic/1/images__4_.jpg」,「/家庭/ codebajra /網絡/ office/autocraig/public/uploads/posting_pic/pic/2/mona200.jpg「,」/home/codebajra/www/office/autocraig/public/uploads/posting_pic/pic/3/images__1_.jpg「]。

+0

您是否正在將廣告上傳到Craigslist?你是如何克服Craigslist的1post/48hours規則? –

回答

1

保存文件字段的表單只設置一次,它只取一個首先點擊的圖像。所以,更新的代碼將是,

unless pic_url_arry.blank? 
    unless page.links_with(:text => 'Use classic image uploader').first.blank? 
     page = page.links_with(:text => 'Use classic image uploader').first.click 
    end 
    puts "After classic image uploader" 
    form = page.form_with(class: "add") 
    # build full file path before setting like this => file = File.join(APP_ROOT, 'tmp', 'image.jpg') 
    i = 0 
    pic_url_arry = pic_url_arry.shuffle 
    pic_url_arry.each do |p| 
     form.file_uploads.first.file_name = p 
     i+= 1 
     page = form.submit 
     form = page.form_with(class: "add") 
     puts "******#{p.inspect}*******" 
     puts "******#{page.inspect}*******" 
    end unless pic_url_arry.blank? 
    # check if the file uploaded sucessfully with no. of files with no. of imgbox on page. 
    check_image_uploaded = page.at('figure.imgbox').count 
    if check_image_uploaded.to_i == i.to_i 
     # upload failure craiglist or net error. 
    end 
    end 

希望這將解決問題。

+1

謝謝@roarfromror它解決了我的問題。 – codemilan

相關問題