有没有更快的方法来检查众多网站的可用性

时间:2019-11-30 05:45:02

标签: python web-scraping request python-requests

大家好。

此代码用于检查网站是否可用,但是它正在加载整个页面,因此,如果我有 100个网站的列表,它将很慢。

我的问题是:有什么方法可以更快地做到这一点?

import requests
user_agent = {'accept': '*/*', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

session = requests.Session()
response = session.get("http://google.com", headers=user_agent, timeout=5)
if response.status_code == 200:
    print("Checked & avaliable")
else:
    print("Not avaliable")

谢谢!

每一个帮助都会得到赞赏

2 个答案:

答案 0 :(得分:1)

您可以使用它:

import urllib.request
print(urllib.request.urlopen("http://www.google.com").getcode())
#output
>>> 200

答案 1 :(得分:1)

  

此代码用于检查网站是否可用,但它会加载整个页面

要不加载整个页面,可以发出HEAD而不是GET的请求,因此只检查状态。参见Getting HEAD content with Python Requests

另一种更快的方法是使用多个线程或异步(https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html)发出多个请求。