Как извлечь все URL с сайта? - PullRequest
0 голосов
/ 02 марта 2012

Я пишу программу на Python для извлечения всех URL-адресов с данного сайта.Все ссылки с сайта, а не со страницы.Поскольку я полагаю, что я не первый, кто хочет сделать это, мне было интересно, было ли готовое решение или я должен сам написать код.

Ответы [ 4 ]

0 голосов
/ 23 мая 2014

Сначала необходимо загрузить HTML-содержимое страницы с помощью пакета, подобного urlib или запросов .

После этого вы можете использовать Beautiful Soup для извлечения URL-адресов. Фактически, их учебник показывает, как извлечь все ссылки, заключенные в <a> элементы, в качестве конкретного примера:

for link in soup.find_all('a'):
    print(link.get('href'))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie

Если вы также хотите найти ссылки, не заключенные в элементы <a>, вам, возможно, придется написать что-то более сложное самостоятельно.

РЕДАКТИРОВАТЬ: Я также натолкнулся на два класса экстракторов ссылок Scrapy, которые были созданы специально для этой задачи:

http://doc.scrapy.org/en/latest/topics/link-extractors.html

0 голосов
/ 02 марта 2012

Я не видел ни одного готового скрипта, который делает это при быстром поиске в Google.

Использование фреймворка scrapy делает это почти тривиальным.

Отнимающая много времени часть научилась бы использовать скрап. Их уроки великолепны, и не займет у вас так много времени.

http://doc.scrapy.org/en/latest/intro/tutorial.html

Создание решения, которое могут использовать другие, является одной из радостей быть частью сообщества программистов. Если скребка не существует, вы можете создать его, чтобы каждый мог получить все ссылки с сайта!

0 голосов
/ 02 марта 2012

Приведенные ответы - это то, что я бы предложил (+1).

Но если вы действительно хотите сделать что-то быстрое и простое и работаете на платформе * NIX, попробуйте следующее:

lynx -dump YOUR_URL | grep http

Где YOUR_URL - это URL, который вы хотите проверить.Это должно дать вам все необходимые ссылки (кроме ссылок, которые не полностью написаны)

0 голосов
/ 02 марта 2012

Это будет непросто, но достойной отправной точкой было бы изучение этих двух библиотек:

URLLIB
BeautifulSoup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...