检查 robots.txt 文件是否存在于 python3 中

Checking if robots.txt file exists in python3

我想检查 URL 是否存在 robots.txt 文件。我在 python 3 中发现了 urllib.robotparser 并尝试获得响应。但是我找不到 return robotss.txt

的状态码(或者只是 true/false 存在)的方法
from urllib import parse
from urllib import robotparser

def get_url_status_code():
    URL_BASE = 'https://google.com/'
    parser = robotparser.RobotFileParser()
    parser.set_url(parse.urljoin(URL_BASE, 'robots.txt'))
    parser.read()
    # I want to return the status code

print(get_url_status_code())

如果您可以使用 requests 模块 强烈推荐

,这并不难
import requests

def status_code(url):
    r = requests.get(url)
    return r.status_code

print(status_code('https://github.com/robots.txt'))
print(status_code('https://doesnotexist.com/robots.txt'))

否则,如果您想避免使用 GET 请求,您可以使用 HEAD。

def does_url_exist(url):
    return requests.head(url).status_code < 400

更好的是,

def does_url_exist(url):
    try: 
        r = requests.head(url)
        if r.status_code < 400:
            return True
        else:
            return False
    except requests.exceptions.RequestException as e:
        print(e)
        # handle your exception