python - 输入链接中的非可选协议 - py regex | 要求
问题描述
问题是:检查输入的链接是否有效,或者该链接可以作为https://stackoverflow.com/和 stackoverflow.com 输入。
我试图解决它
input_url = str(input("Enter url: ")
result = re.findall(r'(http[s]?://)?\S+', input_url)
返回错误 -Invalid URL '': No schema supplied. Perhaps you meant http://?
没有urllib
或别的什么,它必须只是正则表达式
完整代码:
import re, requests
from collections import Counter
from prettytable import PrettyTable
url_input = str(input("Enter url: "))
url_checked = re.findall(r'(http[s]?://)?\S+', url_input)[0] # берем первый элемент
response = requests.get(str(url_checked)) # запрос на введенную ссылку
result = re.findall( r"\"(?:http[s]?://)?([^:/\s\"]+)/?[^\"]*\"", response.text) # фильтрация ссылок
result.sort() # sorting by alphabet
# link - https://stackoverflow.com/
pt = PrettyTable(field_names = ["word", "counter"])
pt.add_rows(list(Counter(result).most_common()))
print(pt)
解决方案
您的正则表达式似乎太简单而无法可靠地验证 URL。我建议你使用这里的那个。
推荐阅读
- css - 在步进进度条下对齐标签
- c# - 将一个属性的属性复制到另一个属性,而不是再次写入它们
- laravel - Laravel 7.0 流式传输 HLS 视频存在 CORS 问题
- r - Rcpp rowMaxs 与 matrixStats rowMaxs
- highcharts - 无法在我的 yii2 项目中查看 highcharts
- spring-security - 无法使用 userdetailservice autoconfig 禁用 spring 安全性?
- python - 使用目录中的多个 ZIP 文件并使用 Python 转换、重命名文件
- angular - 如何从服务器注入对象?
- ios - 如何在iOS swift中为每个条形图创建一条限制线
- google-api - 谷歌发票 API,文档?