торая получает один или несколько 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}}.