Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 216

функцию get_links(), которая делает грязную работу, и основную программу, ко-

торая получает один или несколько URL как аргументы командной строки:

def get_links(url):

import requests

from bs4 import BeautifulSoup as soup

result = requests.get(url)

page = result.text

doc = soup(page)

links = [element.get('href') for element in doc.find_all('a')]

return links

if __name__ == '__main__':

import sys

for url in sys.argv[1:]:

print('Links in', url)

for num, link in enumerate(get_links(url), start=1):

print(num, link)

print()

Я сохранил эту программу под именем links.py, а затем запустил с помощью

данной команды:

$ python links.py http://boingboing.net

Взгляните на первые несколько отображенных строк:

Links in http://boingboing.net/

1 http://boingboing.net/suggest.html

2 http://boingboing.net/category/feature/

3 http://boingboing.net/category/review/

4 http://boingboing.net/category/podcasts

5 http://boingboing.net/category/video/

6 http://bbs.boingboing.net/

7 javascript:void(0)

8 http://shop.boingboing.net/

9 http://boingboing.net/about

10 http://boingboing.net/contact

280

Глава 9. Распутываем Всемирную паутину

Упражнения

1. Если вы еще не установили Flask, сделайте это сейчас. Это также установит

werkzeug, jinja2 и, возможно, другие пакеты.

2. Создайте скелет сайта с помощью веб-сервера Flask. Убедитесь, что сервер на-

чинает свою работу по адресу Localhost на стандартном порте 5000. Если ваш

компьютер уже использует порт 5000 для чего-то еще, воспользуйтесь другим

портом.

3. Добавьте функцию home() для обработки запросов к домашней странице. Пусть

она возвращает строку It's alive!.

4. Создайте шаблон для jinja2, который называется home.html и содержит следу-

ющий контент:

<html>

<head>

<title>It's alive!</title>

<body>

I'm of course referring to {{thing}}, which is {{height}} feet tall and {{color}}.