Форум сайта python.su
хочу начать,написать парсер,но не знаю как к этому подойти.
итак,вот есть страница http://www.ex.ua/view/9853995?r=28739,23777 ,в которой хочу сграбить картинки,посмотрев код страницы,нашел нужный код:
<td><span class=small>1.</span><br><a href='/get/16052370' title='003 (1).jpg'>003 (1).jpg</a></td>
Отредактировано (Сен. 27, 2011 19:54:14)
Офлайн
rarepython
Выбирайте инструмент по задаче. Не надо парсить html регулярками, используйте BeautifulSoup или lxml.
Офлайн
EnchantnerИногда регулярками гораздо выгоднее, например на той неделе мне нужно было сграбить с каждой страницы по 15 байт, решил попробовать html5lib (+для получения опыта) - каждая страница парсилась около 1 сек, это очень долго, тем более что совокупный объем страниц = 10Гб, т.к. html5lib мне “не помог” (неприемлемое время выполнения с учетом многопоточности), в итоге я все сделал на регулярках - оно в 100 раз быстрее.
rarepython
Выбирайте инструмент по задаче. Не надо парсить html регулярками, используйте BeautifulSoup или lxml.
Офлайн
rarepython
я думаю это вам поможет
Офлайн
Есть много полезных библиотек на эту тему. Например http://habrahabr.ru/blogs/python/127584/
Отредактировано (Сен. 29, 2011 13:14:30)
Офлайн
alexandreчитал эту статью,только не понял где её скачать и где офруководство?
Есть много полезных библиотек на эту тему. Например http://habrahabr.ru/blogs/python/127584/
Офлайн
во многих случаях проще регулярками разбирать, чем подключать библиотеки
Офлайн
Сляпал колесо - htmlcut
Работает с ограничениями, но большинство задач покрывает.
+ Работает быстрее большинства распарсивающих библиотек. т.к. основан на regex и выкусывает только нужные куски.
+ Не нужно указывать все вложенные теги, т.е. “<div> <span> <h1> <a> … ”, что-б найти “a” в “div” можно написать“div|a”
+ Маленький и простой (сама ф-ия около 50-и строк кода), кто захочет может допилить под себя.
например url из первого поста достается так:
from htmlcut import xget
html = "... <td><span class=small>1.</span><br><a href='/get/16052370' title='003 (1).jpg'>003 (1).jpg</a></td> ..."
print xget(html, 'td|a~href')
Офлайн
o7412369815963
А почему не CSS или XPath? И да, оно не нужно, есть http://pypi.python.org/pypi/pyquery
Офлайн
Enchantnerpyquery работает через lxml, т.е. имеет те же тормоза.
o7412369815963
А почему не CSS или XPath? И да, оно не нужно, есть http://pypi.python.org/pypi/pyquery
...
<div>...</div>
<div>
<div>
<h1>Section</h1>
</div>
<div>Target text</div>
</div>
<div>...</div>
...
Офлайн