проблемы в скрипте очистки экрана - PullRequest
2 голосов
/ 18 октября 2010

У меня есть небольшой скрипт сканирования / сканирования экрана, который работал пол года назад, но теперь он больше не работает. Я проверил значения html и css для выражения reg в источнике страницы, но они все те же, поэтому с этой точки зрения это должно работать. Есть догадки?

require "open-uri"

# output file
f = open 'results.csv', 'w+'

# output string
results = ""

begin

  # crawl first 20 pages
  for i in (1..20)
    open("http://www.example-#{i}.com") {|url|

      # check each line using regular expression
      url.each_line { |line|
        if line =~ /class=\"L1g\" onclick=\"s_objectID=\'foobar\'\">([^<]+)<\/a><\/h3><\/li>/
          # if regular expression matches then add to results
          results += $1 + "\n"
        end
      }
    }
  end
ensure
  # write to and close file
  f.print results
  f.close
end

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Другим вариантом для очистки веб-страниц является iMacros. Эти скрипты очень легко адаптировать к изменениям сайта.

0 голосов
/ 18 октября 2010

Похоже, что целевой веб-сайт изменил структуру своей страницы, поэтому ваше регулярное выражение больше не соответствует.

Это хороший пример того, почему вы не должны очищать страницы, используя Regex, чтобы соответствовать содержимому. Попробуйте переработать ваш скрипт, используя DOM-парсер, такой как Nokogiri. Это не обязательно остановит ваш скрипт, но по крайней мере позволит ему пережить незначительные изменения.

Причину, по которой он не работает, можно увидеть в этой Rubular ссылке

...