Я работаю над приложением, которое должно анализировать URL-адреса (в основном HTTP-URL) на HTML-страницах - у меня нет контроля над вводом, и некоторые из них, как и ожидалось, немного беспорядочные.
Одна из проблем, с которыми я часто сталкиваюсь, заключается в том, что urlparse очень строг (и, возможно, даже содержит ошибки?), Когда дело доходит до синтаксического анализа и объединения URL-адресов, которые имеют двойную косую черту в части пути, например:
testUrl = 'http://www.example.com//path?foo=bar'
urlparse.urljoin(testUrl,
urlparse.urlparse(testUrl).path)
Вместо ожидаемый результат http://www.example.com//path
(или даже лучше, с нормализованной одинарной косой чертой), я получаю http: // path
.
Кстати, я использую такой код, потому что это единственный способ, который я нашел до сих пор, для удаления части запроса / фрагмента из URL-адресов. Может быть, есть способ лучше, но я не смог его найти.
Может ли кто-нибудь порекомендовать способ избежать этого, или я должен просто нормализовать путь самостоятельно, используя (относительно простое, я знаю) регулярное выражение?