Как бы я сделал простой экстрактор URL в Python? - PullRequest
0 голосов
/ 13 октября 2010

Как мне начать с одной веб-страницы, скажем, в корне DMOZ.org и индексировать каждый прикрепленный к ней URL-адрес. Затем сохраните эти ссылки в текстовом файле. Мне не нужен контент, только сами ссылки. Пример был бы потрясающим.

Ответы [ 3 ]

2 голосов
/ 13 октября 2010

Например, это напечатало бы ссылки на этот очень связанный (но плохо названный) вопрос :

import urllib2
from BeautifulSoup import BeautifulSoup

q = urllib2.urlopen('https://stackoverflow.com/questions/3884419/')
soup = BeautifulSoup(q.read())

for link in soup.findAll('a'):
    if link.has_key('href'):
        print str(link.string) + " -> " + link['href']
    elif link.has_key('id'):
        print "ID: " + link['id']
    else:
        print "???"

Выход:

Stack Exchange -> http://stackexchange.com
log in -> /users/login?returnurl=%2fquestions%2f3884419%2f
careers -> http://careers.stackoverflow.com
meta -> http://meta.stackoverflow.com
...
ID: flag-post-3884419
None -> /posts/3884419/revisions
...
0 голосов
/ 14 октября 2010

Scrapy - это среда Python для веб-сканирования. Здесь множество примеров: http://snippets.scrapy.org/popular/bookmarked/

0 голосов
/ 13 октября 2010

Если вы настаиваете на повторном изобретении колеса, используйте html-парсер, например BeautifulSoup, чтобы извлечь все теги. Этот ответ на аналогичный вопрос актуален.

...