Очистка скрытого HTML (когда видим = ложь) с использованием Hpricot (Ruby on Rails) - PullRequest
0 голосов
/ 12 ноября 2009

Я столкнулся с проблемой, которую, к сожалению, не могу превзойти, к сожалению, я просто новорожденный для Руби на рельсах, отсюда и количество вопросов

Я пытаюсь почистить веб-страницу, например:

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo.aspx

Я бы хотел очистить адреса, телефоны и URL следующей страницы, которая в данном случае

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo+Ismol.aspx

Я пробовал практически все, что мог придумать, но, похоже, ничего не работает, потому что они настроены на невидимость или около того.

Адрес находится внутри тега h3 , но, похоже, его нельзя удалить. Я также изучал ScRUBYt по следующему URL http://www.rubyrailways.com/ajax-scraping-with-scrubyt-linkedin-google-analytics-yahoo-suggestions/, но я действительно не могу понять, как применять их в этом случае.

Я был бы очень признателен за любые указатели, поскольку это препятствие, которое мне действительно нужно преодолеть, чтобы продвинуться вперед в выполнении моего задания. Заранее благодарю за любую помощь.

Ответы [ 3 ]

1 голос
/ 13 ноября 2009

В приведенном вами конкретном примере элементы не скрыты, а загружаются через ajax после загрузки страницы. В общем, вам нужен http-клиент, который может запускать javascript (веб-браузер?) Для просмотра этого адреса и другого содержимого.

Если вы хотите действительно автоматизировать процесс и удалить данные, полученные с помощью ajax или javascript, вы можете попробовать selenium . Даже если он не разработан для этой цели, он служит вашим потребностям.

0 голосов
/ 28 ноября 2009

В группе google есть хороший скрипт. Кажется, для извлечения адреса и т. Д. Вы можете посмотреть код для скрипта page.txt.

0 голосов
/ 12 ноября 2009

У меня нет ответа на ваш конкретный вопрос, но я подумал, что укажу на эпизод с Райканом Бэйсткастом по поводу очистки экрана с помощью ruby: http://railscasts.com/episodes/173-screen-scraping-with-scrapi

Он использует библиотеку scrAPI вместо ScRUBYt, так как он не может заставить работать ScRUBYt. Возможно, scrAPI немного проще?

Надеюсь, это поможет, удачи с заданием! :)

-John

...