আমি এই পৃষ্ঠাটিতে অবতরণ করেছি যাতে স্ট্রিংগুলিকে "বৈধ" ইউআরএল হিসাবে বৈধতা দেওয়ার একটি বুদ্ধিমান উপায় বের করার চেষ্টা করছি। আমি পাইথন 3 ব্যবহার করে আমার সমাধানটি এখানে ভাগ করে দিচ্ছি। কোনও অতিরিক্ত গ্রন্থাগার প্রয়োজন।
যদি আপনি পাইথন 2 ব্যবহার করে থাকেন তবে https://docs.python.org/2/library/urlparse.html দেখুন ।
আপনি যেমন পাইথন 3 ব্যবহার করছেন তা https://docs.python.org/3.0/library/urllib.parse.html দেখুন ।
import urllib
from pprint import pprint
invalid_url = 'dkakasdkjdjakdjadjfalskdjfalk'
valid_url = 'https://stackoverflow.com'
tokens = [urllib.parse.urlparse(url) for url in (invalid_url, valid_url)]
for token in tokens:
pprint(token)
min_attributes = ('scheme', 'netloc') # add attrs to your liking
for token in tokens:
if not all([getattr(token, attr) for attr in min_attributes]):
error = "'{url}' string has no scheme or netloc.".format(url=token.geturl())
print(error)
else:
print("'{url}' is probably a valid url.".format(url=token.geturl()))
পার্সারসাল্ট (স্কিম = '', নেটলোক = '', পাথ = 'ডাকাকসডকজডজাকডজাদজফালসডজফালক', প্যারামস = '', কোয়েরি = '', খণ্ড = '')
পার্সারসাল্ট (স্কিম = 'https', নেটলোক = 'স্ট্যাকওভারফ্লো ডটকম', পাথ = '', প্যারামস = '', কোয়েরি = '', খণ্ড = '')
'dkakasdkjdjakdjadjfalskdjfalk' স্ট্রিংয়ের কোনও স্কিম বা নেটলক নেই।
' https://stackoverflow.com ' সম্ভবত একটি বৈধ url।
এখানে আরও সংক্ষিপ্ত ফাংশন:
from urllib.parse import urlparse
min_attributes = ('scheme', 'netloc')
def is_valid(url, qualifying=min_attributes):
tokens = urlparse(url)
return all([getattr(tokens, qualifying_attr)
for qualifying_attr in qualifying])