2015-07-07 2 views
0

Как написать скребок Mechanize для получения содержимого из каждого тега HTML на веб-странице? Или мне нужно преобразовать страницу в строку и использовать регулярное выражение для получения всего содержимого между \<.*?\> и \<\/.*?\>?Как читать содержимое каждого тега HTML с помощью Mechanize?

ответ

2

Чтобы найти более подробную информацию о написании веб-скребок с Mechanize взглянуть на следующие учебные пособия:

Также имейте в виду, что механизировать использует Nokogiri gem для сделайте свое основное выскабливание. Если вы не привязаны к Mechanize, просто используйте Nokogiri для анализа HTML-тегов.

Не конвертируйте страницу в строку и используйте регулярное выражение для получения содержимого HTML. См. this answer для получения дополнительной информации о том, почему это плохая идея.

--Edit--

Как @pguardiario упоминалось в комментарии ниже код, чтобы получить все содержимое для каждого тега page.search(*).map &:text

+0

@ Зелёный справедливо, я улучшил ответ, чтобы дать более полезный ответ. – 2016rshah

+0

Спасибо. Я буквально пытаюсь пройти содержимое каждого тега на странице. Есть ли способ сделать это с помощью Mechanize/Nokogiri? – Username

+1

Короткий ответ - да, есть способ сделать это. Вам нужно разделить содержимое на структуру данных, основываясь на том, в каком теге она находится, или просто хотите, чтобы простой текст перемешался вместе? – 2016rshah

1

ли вы ограничены только механизировать? Возможно, вы можете попробовать использовать watir или pure selenium, чтобы получить веб-страницу со всеми тегами в одном объекте.

+0

Как бы это сделать в Selenium? – Username

+0

driver.get "http://www.google.com" elements = driver.find_element (: css, "*") –