Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 27, 2013 20:05:15

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

Доброго времени суток!

Ситуация такая: захотелось поучится писать парсеры, но впал в ступор, ибо не представляю, с чего начать даже.К примеру, имеется сайт и мне необходимо получить названия всех PHP файлов. Как это реализовать? Методом перебора? Регулярные выражения? Как, господа и немногочисленные дамы?

Офлайн

#2 Ноя. 27, 2013 20:18:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

Razor
имеется сайт
Где он имеется? У вас есть url сайта или его коды на своей машине?



Офлайн

#3 Ноя. 27, 2013 20:26:01

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

doza_and
Razor
имеется сайт
Где он имеется? У вас есть url сайта или его коды на своей машине?

Имеется URL сайта. Я хочу понять, каким образом реализовывается такой парсер. Как искать файлы, имен которых не знаешь?

Можно, разумеется, использовать регулярные выражения, типа “\.php”, но как реализовать поиск через URL?

Офлайн

#4 Ноя. 27, 2013 21:00:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

для начала у тебя есть программа (функция), которая управляет исполнителем
он умеет открывать ссылки, закачивать с них данные, передавать эти данные другому исполнителю и принимать от него ответ

второй исполнитель также управляется программой (функцией), которая находится внутри первого исполнителя
он умеет из данных выделять фрагменты, искать в них ссылки и пути, передавать эти ссылки и пути третьему исполнителю и принимать от него ответ

третий исполнитель также управляется программой (функцией), которая находится внутри второго исполнителя
он умеет из пути выделять имя файла, из ссылки выделять имя файла


тут всё дело в том, что кажется, будто нужно написать несколько функций, потому что так проще, но это не так; когда тебе понадобится в процессе разработки сохранить эти имена куда-то, либо обработать их, либо сделать что-то ещё, то первоначальный вариант из одних функций сломается (его нужно будет переписывать, либо оставлять в нечитаемом виде)



Офлайн

#5 Ноя. 28, 2013 17:30:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

:)

Razor
Имеется URL сайта
Razor
названия всех PHP файлов
С математической точки зрения задача некорректна. Можно легко построить сайт у которого будет бесконечное число не повторяющихся ссылок.



Офлайн

#6 Ноя. 28, 2013 18:23:51

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Поиск *.php файлов на сайте

Ладно, к сути вопроса: http://habrahabr.ru/post/70330/

Захотелось поупражняться, вытаскивая исходники сайтов. Никакого криминала - чистая практика. Поупражняюсь в парсере и удалю.

В принципе, задача без этой ссылки и правда кажется некорректной. Однако исходники я таки выкачал (кои потом удалил). Хотелось понять, как выкачать файлы, не зная их названий и не используя регулярных выражений. Посмотреть возможности Питона.

Можно, конечно выкачать все, методом перебора, но это совсем уж)

try:
    urllib.request.orlopen('http://{0}/.svn/entries'.format(url))
except urllib.error.HTTPError:
    continue

P.S. А реализовал чтением файла entries.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version