前缀 "http://" 有效但实际上是 ""https://"

Prefix "http://" valid but actually ""https://"

一长串不完整的网站,缺少一些前缀,例如“http://www”。等等

pewresearch.org
narod.ru
intel.com
xda-developers.com
oecd.org

我试过了:

import requests
from lxml.html import fromstring

to_check = [
"pewresearch.org",
"narod.ru",
"intel.com",
"xda-developers.com",
"oecd.org"]

for each in to_check:
    r = requests.get("http://www." + each)
    tree = fromstring(r.content)
    title = tree.findtext('.//title')
    print (title)

他们返回:

Pew Research Center | Pew Research Center
Лучшие конструкторы сайтов | Народный рейтинг конструкторов для создания сайтов
Intel | Data Center Solutions, IoT, and PC Innovation
XDA Portal & Forums
Home page - OECD

似乎他们的都是以“http://www.”开头的,但不是——因为例如,正确的是“https://www.pewresearch.org/”。

使用在线工具或 Python 最快的方法是什么,我可以找出它们的完整和正确的地址,而不是在网络浏览器中一个一个地键入它们? (有些可能是 http,有些是 https)

谢谢。

编写脚本/短程序向每个站点发送HEAD 请求。服务器应响应重定向(例如到 HTTPS)。跟随每个重定向,直到没有收到进一步的重定向。

C# HttpClient 可以follow redirects automatically.

对于 Python,请参阅@jterrace 的回答 here 使用带有以下代码片段的请求库:

>>> import requests
>>> r = requests.head('http://github.com', allow_redirects=True)
>>> r
<Response [200]>
>>> r.history
[<Response [301]>]
>>> r.url
u'https://github.com/'