Категоризация хороших и плохих URL - PullRequest
1 голос
/ 13 января 2020

У меня есть список из примерно 6000 URL, и я должен проверить для каждого URL, если его код ответа равен 200 (или) нет. Используя обычный request.get () с помощью urllib, он принимает много времени, так как он загружает всю страницу HTML и возвращает код ответа.

Можно ли просто получить код URL-адреса, просто не загружая полностью веб-страницу в бэкэнд?

Ответы [ 2 ]

1 голос
/ 13 января 2020

Вы можете использовать метод HEAD, чтобы получить только данные заголовка URL. Это будет выглядеть примерно так:

from urllib.request import Request, urlopen

urls = [
       'http://google.com',
]

def custom_get_method():
    return 'HEAD'

for url in urls:
    req = Request(url)
    req.get_method = custom_get_method
    res = urlopen(req)
    if res.status == 200:
       print("Up")
    else:
       print("Down")

Код был адаптирован с { ссылка }

1 голос
/ 13 января 2020

Вы должны просто пинговать их:

import os
hosts = [
    'google.com', 
    ...
]

for host in hosts:
    response = os.system(f"ping -c 1 {host}")
    if response == 0:
        print('host is up')
    else:
        print('host is down')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...