Проверка, произошел ли веб-сайт с помощью Python

В соответствии с документацией для AppBarLayout :

AppBarLayout также требует отдельного элемента прокрутки, чтобы знать, когда прокручивать. Привязка осуществляется с помощью класса поведения AppBarLayout.ScrollingViewBehavior, что означает, что вы должны установить поведение вашего прокручиваемого представления как экземпляр AppBarLayout.ScrollingViewBehavior.

blockquote>

Если содержимое ViewPager не прокручивается, тогда нет «прокрутки родного брата». (Я предполагаю, что вы говорите, что содержимое ViewPager не прокручивается, когда вы говорите «Я не использую какой-либо просмотр списка». )

Если содержимое ViewPager не прокручивайте, тогда вы можете обернуть содержимое ViewPager в NestedScrollView примерно так:



    


Это то, что будет добавлено в ViewPager.

55
задан Community 23 May 2017 в 10:31
поделиться

7 ответов

Вы можете попробовать сделать это с помощью getcode () из urllib

>>> print urllib.urlopen("http://www.stackoverflow.com").getcode()
>>> 200

РЕДАКТИРОВАТЬ: Для более современного python, например python3 , использование:

import urllib.request
print(urllib.request.urlopen("http://www.stackoverflow.com").getcode())
>>> 200
86
ответ дан 26 November 2019 в 17:46
поделиться

Запросы и httplib2 большие опции:

# Using requests.
import requests
request = requests.get(value)
if request.status_code == 200:
    return True
return False

# Using httplib2.
import httplib2

try:
    http = httplib2.Http()
    response = http.request(value, 'HEAD')

    if int(response[0]['status']) == 200:
        return True
except:
    pass
return False

При использовании Ansible, можно использовать функцию fetch_url:

from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url

module = AnsibleModule(
    dict(),
    supports_check_mode=True)

try:
    response, info = fetch_url(module, url)
    if info['status'] == 200:
        return True

except Exception:
    pass

return False
0
ответ дан 26 November 2019 в 17:46
поделиться

мои 2 цента

def getResponseCode(url):
conn = urllib.request.urlopen(url)
return conn.getcode()

if getResponseCode(url) != 200:
    print('Wrong URL')
else:
    print('Good URL')
0
ответ дан 26 November 2019 в 17:46
поделиться

Вы можете использовать httplib

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD", "/")
r1 = conn.getresponse()
print r1.status, r1.reason

распечатки

200 OK

Конечно, только если www.python.org работает.

9
ответ дан 26 November 2019 в 17:46
поделиться
import httplib
import socket
import re

def is_website_online(host):
    """ This function checks to see if a host name has a DNS entry by checking
        for socket info. If the website gets something in return, 
        we know it's available to DNS.
    """
    try:
        socket.gethostbyname(host)
    except socket.gaierror:
        return False
    else:
        return True


def is_page_available(host, path="/"):
    """ This function retreives the status code of a website by requesting
        HEAD data from the host. This means that it only requests the headers.
        If the host cannot be reached or something else goes wrong, it returns
        False.
    """
    try:
        conn = httplib.HTTPConnection(host)
        conn.request("HEAD", path)
        if re.match("^[23]\d\d$", str(conn.getresponse().status)):
            return True
    except StandardError:
        return None
7
ответ дан 26 November 2019 в 17:46
поделиться

Если под словом «вверх» вы просто имеете в виду «сервер обслуживает», тогда вы можете использовать cURL, и если вы получите ответ, то он работает.

Я не могу дать вам конкретного совет, потому что я не программист на Python, но вот ссылка на pycurl http://pycurl.sourceforge.net/ .

1
ответ дан 26 November 2019 в 17:46
поделиться

Объект HTTPConnection из модуля httplib в стандартной библиотеке, вероятно, поможет вам. Кстати, если вы начнете делать что-нибудь продвинутое с HTTP в Python, обязательно ознакомьтесь с httplib2 ; это отличная библиотека.

4
ответ дан 26 November 2019 в 17:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: