Какой язык/инструмент я должен использовать для парсинга HTML?

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

openAddDiag() { 
    this.myControl2.setValue(""):
};

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

7
задан Martin 24 February 2009 в 14:25
поделиться

4 ответа

Можно использовать в значительной степени любой язык, который Вы любите, просто не пытаются проанализировать HTML с регулярными выражениями.

Таким образом позвольте мне перефразировать это и сказать: можно использовать любой язык, Вам нравится этот, имеет синтаксический анализатор HTML, который является в значительной степени всем изобретенным за прошлые 15-20 лет.

Если у Вас есть проблемы с конкретными страницами, я предлагаю, чтобы Вы изучили восстановление их с Опрятным HTML.

5
ответ дан 7 December 2019 в 03:21
поделиться

Я думаю, что hpricot (связанный Colin Pickard) является первоклассным. Добавьте scrubyt к соединению, и Вы получаете большую очистку HTML и просмотр интерфейса с текстом, соответствующим питанию Ruby http://scrubyt.org/

вот некоторый пример кода из http://github.com/scrubber/scrubyt_examples/blob/7a219b58a67138da046aa7c1e221988a9e96c30e/twitter.rb

require 'rubygems'
require 'scrubyt'

# Simple exmaple for scraping basic
# information from a public Twitter
# account.

# Scrubyt.logger = Scrubyt::Logger.new

twitter_data = Scrubyt::Extractor.define do
  fetch 'http://www.twitter.com/scobleizer'

  profile_info '//ul[@class="about vcard entry-author"]' do
    full_name "//li//span[@class='fn']"
    location "//li//span[@class='adr']"
    website "//li//a[@class='url']/@href"
    bio "//li//span[@class='bio']"
  end
end

puts twitter_data.to_xml
2
ответ дан 7 December 2019 в 03:21
поделиться

hpricot может быть тем, что Вы ищете.

0
ответ дан 7 December 2019 в 03:21
поделиться

Можно попробовать класс PHP DOMDocument. Это имеет несколько методов для загрузки содержимого HTML. Я обычно использую этот класс. Мой советует, должны предварительно ожидать элемент DOCTYPE к HTML в случае, если он не имеет один и осмотреть в Firebug HTML, который заканчивается после парсинга. В некоторых случаях, где с недопустимой разметкой встречаются, DOMDocument делает немного перестановки элементов HTML. Кроме того, если существует метатег, указывающий набор символов в источнике быть осторожным, что он будет использоваться внутренне libxml при парсинге разметки. Вот немного примера

$html = file_get_contents('http://example.com');

$dom = new DOMDocument;
$oldValue = libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_use_internal_errors($oldValue);

echo $dom->saveHTML();
0
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: