JRazor
@JRazor
Senior StarkOverFlow Programmer

Как написать парсер файлов на сайте (Python)?

Доброго времени суток, господа и немногочисленные дамы!

Ситуация такая: имеем URL сайта и необходимо найти все файлы на этом сайте.

Вопрос: что использовать? Регулярные выражения ('\.(php|txt|css)')? Методом подстановки? Как?

Спасибо!
  • Вопрос задан
  • 7285 просмотров
Пригласить эксперта
Ответы на вопрос 3
alternativshik
@alternativshik
дернуть wget'om и потом грепнуть нужное?
Ответ написан
@borgch
Я использовал регулярные выражения (модуль называется re). А конкретно, сначала получал код страницы:
from urllib import request
...
html = request.urlopen(your_url).read().decode('utf-8')

И потом что-нибудь вроде
filenames = re.findall('\w+\.(?:txt|php|css)', html)

Это запомнит в filenames все имена файлов (без пробелов), за которыми следует нужное расширение. Если имена файлов лежат в окружении каких-нибудь определённых тегов (например,
<tag1><div class='filenames'>имя файла.txt</div><br></tag1>
, то легко с помощью круглых скобок можно выделить ту часть текста, походящего под regexp, который нужен.
fiilenames = re.findall("<tag1><div class='filenames'>(.*?\.(?:txt|php|css)')</div><br>", html).

Почитай документацию по данному модулю и сделай по аналогии то, что нужно.
Ответ написан
maxaon
@maxaon
Не идеальный, но вполне работающий паук - Grab. Может ходить по сайтам. искать все что вам надо, включая xPath и RegExp
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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