Как быстро «извлечь» конкретную информацию из веб-страниц (исходный код) и отформатировать ее в XML?

1778
MrT

Суть: небольшая компания, в которой я работаю, рекламирует свои продукты через Google Merchant. Мы загружаем продукты в XML-файл в соответствии с требованиями Google.

Проблема: ручное форматирование тысяч продуктов в XML является трудной задачей. То, что я хочу, - это быстрый способ преобразовать соответствующую информацию на каждой странице продукта в форматированный XML. Я ищу (полу) автоматический путь перехода от bigHTMLSourceCode -> formattedXML.

Если я не совсем уверен, представьте, что хотите отформатировать страницу продукта Amazon в XML. Вы хотите, чтобы стоимость, описание, вес и т. Д. Были упорядочены определенным образом, с соответствующими XML-тегами и т. Д., А для тысяч продуктов это невозможно.

Я много гуглил, но мне не повезло найти программы, которые могут помочь с этим.

0
Итак, ваш исходный веб-сайт - это просто набор вручную поддерживаемых файлов .html? Der Hochstapler 12 лет назад 0
@OliverSalzburg Большая часть информации о продукте поддерживается вручную; каждая страница также содержит автоматически сгенерированную информацию, но у меня нет доступа к «бэк-энду» вещей, и меня попросили найти решение с тем, что доступно (и вся необходимая информация определенно содержится в необработанном источнике код). MrT 12 лет назад 1

2 ответа на вопрос

0
RedGrittyBrick

Если ваш HTML является XHTML, вы, вероятно, можете использовать XSLT ?

Есть инструменты для конвертации HTML в XML

Основной альтернативой будет использование языка сценариев, который имеет модули для разбора HTML или веб-скребка и модули для написания XML . Но это означает написание программ / сценариев.

Спасибо! Я посмотрю на эти инструменты. Я надеюсь избежать написания программ и сценариев (я программист baaad), но я углублюсь в это, если придется. Конвертеры HTML-> XML, которые я нашел, оказались неподходящими. MrT 12 лет назад 0
0
Daniel Andersson

Вы найдете много историй успеха с модулем Python Beautiful Soup, и он широко рекомендуется для очистки веб-страниц, к которому я отнесу эту категорию (если вы предложите решения с регулярными выражениями, вы быстро получите выговор пользователями SU и SO). :-)). Это то, что я использовал бы для очистки вашего примера amazon.com, и я использовал это в других контекстах.

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

(Мне не нравится, когда люди говорят: «О, это действительно просто!», Когда на практике это занимает много времени у того, кто не привык к инструменту, но я считаю, что Beautiful Soup и Python - это простое и надежное решение. Если вы найти решение, которое подходит вам лучше: great :-)).


Приложение: какая у вас система, где все страницы - статический HTML? Данные не хранятся в базе данных где-то? Я думаю, не из-за вашего вопроса. Это может создать проблему (для любого автоматического решения), если HTML-код не одинаков на всех страницах продукта.

Спасибо! Я надеялся, что эта проблема («очистка веб-страниц» - новый термин!) Была достаточно распространенной, чтобы были программы, предназначенные для этой задачи, но модули могли бы быть достаточно хорошими. У меня нет опыта работы с Python, но я прошел курсы по C ++ и Java. Информация о продукте * хранится в базе данных, но у меня нет к ней доступа; мой начальник попросил меня найти решение, которое у меня есть, поскольку вся необходимая информация находится в источнике. MrT 12 лет назад 0