«Mechanize is the seventh studio album by Fear Factory.» ;) en.wikipedia.org/wiki/Mechanize
==============================================================
Эта библиотека для несколько других целей разработана.
«The Mechanize library is used for automating interaction with websites.» mechanize.rubyforge.org/mechanize/README_rdoc.html
Там есть классы по распарсиванию страницы, но насколько они удобны именно для парсинга — надо разбираться.
Ну зачем же сайты то ломать, карму себе портить :)
На один сайт, точнее даже, на один IP открывается один поток. Так что с сайта в единицу времени берется не более одной страницы. Это конечно медленный путь получения информации, но лучше медленно, чем тебя везде банить начнут.
Редко, но встречаются варианты, когда имена тэгов пишут большими буквами. Чтобы работало на всем множестве исходных данных, регулярное выражение получится довольно громоздким. Боюсь в таком виде оно будет не особо шустрее того-же libxml. libxml купил определенной универсальностью — он глотает почти все. Чтобы самостоятельно добиться похожего результата, надо сильно попотеть. А мне «горячих» задач и без этого хватает.
Как минимум нужно выделить из html-страницы заголовок, description, кодировку и собственно текст.
В тексте желательно отфильтровать различные лево-правые столбцы с ссылками-меню и т.п.
Как отдельная подзадача (была у коллеги, но чую, достанется по наследстве мне) — сбор всех ссылок со страницы в виде (url, текст). Могут прорезаться и другие требования. Поэтому и подсел на libxml — он строит дерево, оббегая которое можно получить все, что требуется.
en.wikipedia.org/wiki/Mechanize
==============================================================
Эта библиотека для несколько других целей разработана.
«The Mechanize library is used for automating interaction with websites.»
mechanize.rubyforge.org/mechanize/README_rdoc.html
Там есть классы по распарсиванию страницы, но насколько они удобны именно для парсинга — надо разбираться.