kzhereb / knu-is-rivim2017

Discussing lectures, questions and other related topics for RiVIM course
0 stars 1 forks source link

Question 3.4. Doctype #23

Open viktor-yakubiv opened 6 years ago

viktor-yakubiv commented 6 years ago

Навести приклади «цікавих» сайтів, які не використовують сучасний <!DOCTYPE html> (а використовують якусь попередню версію, або взагалі не вказують DOCTYPE).

Додаткові бали – за якісь скрипти чи інші засоби автоматизації, які дозволяють шукати такі сайти (відповідно треба надсилати source code скриптів).

Критеріями «цікавості» сайтів може бути обсяг трафіку. Наприклад, http://www.wikipedia.org/ - кожен раз, як гроші просять, згадують про свій TOP 5 статус 🙂, або важливість організації, якій належить сайт ( http://www.intel.com чи http://www.w3.org ), або корисність сайту для community (та ж вікіпедія, чи http://stackoverflow.com/ , чи http://www.imdb.com/ ), або ще щось.

На слайдах 114-119 наведені якісь старі приклади сайтів, що колись не використовували <!DOCTYPE html> — є сподівання, що зараз більшість з них вже виправились, але, можливо, знайдуться інші "любителі старовини" 🙂

viktor-yakubiv commented 6 years ago
import os
import sys
from bs4 import BeautifulSoup, Doctype

def get_soup(url):
    response = requests.get(url)
    return BeautifulSoup(response.text, 'html.parser')

def doctype(soup):
    items = [item for item in soup.contents if isinstance(item, Doctype)]
    return items[0] if items else None

if __name__ = "__main__":
    if len(sys.argv) < 2:
        print("Not enough of arguments. Please, pass the file with urls")
        sys.exit()

    urls_file = sys.argv[1]
    with open(urls_file) as f:
        urls = f.readlines()
        for url in urls:
            soup = get_soup(url)
            print("{}\t{}".format(url, doctype(soup)))
python doctype.py list.txt | grep '-//'