Что-то всем нужен web-scraping, на фрилансе задач по 10 в день таких.
Ну я и решил… Оценил в 5 часов минимум, а сделать надо 3 сайта. Ан оказалось дольше. Намного дольше, потому что не хочу халтурить:) В следующий раз надо умножать на математическое число.
Но прикольно вот, например, www.yellowpages.com.mt. Там если страницу скачать, то в ней нет адресов и телефонов, они подсасываются с помощью js. Спасибо хромовой консоли и точкам останова по модификации узла. До этого смотрел на вывод tcpdump и проглядел.

Достаточно много народу уже выказывают зайчатки семантической верстки, но не без проблем. В результате получается что-то типа:
{
echo ' '
xmllint --recover --html --xmlout --xpath '//div[@class="detailwrap"]' 2.html 2>&-
} > 1.xml
xmllint --encode utf-8 --html --xmlout 1.xml 2>&- | sed '3d' > 2.xml xsltproc --nonet maltapark.xsl 2.xml 2>&-
А дальше достаточно простой XSLT. Заказчик еще хочет не только в CSV, но еще и в XML и insert-ы для MySQL, но я уж устал! Обойдется.