Многие поисковые системы отслеживают URL-адреса, по которым был выполнен щелчок, путем добавления URL-адреса результата в строку запроса, которая может принимать следующий формат: http://www.example.com/result?track=http://www.stackoverflow.com/questions/ask
В приведенном выше примере URL-адрес результата является частью строки запроса, но в некоторых случаях он принимает форму http://www.example.com/http://www.stackoverflow.com/questions/ask
или используется кодировка URL-адреса.
Подход, который я попробовал первым, - разделить searchengineurl.split("http://")
. Некоторые очевидные проблемы с этим:
- он вернет все части строки запроса, следующие за URL-адресом результата, а не только URL-адрес результата. Это будет проблемой с URL-адресом, подобным этому:
http://www.example.com/result?track=http://www.stackoverflow.com/questions/ask&showauthor=False&display=None
- он не делает различий между какими-либо дополнительными частями строки запроса URL-адреса отслеживания поисковой системы и строки запроса URL-адреса результата. Это может быть проблемой с URL-адресом, подобным этому:
http://www.example.com/result?track=http://www.stackoverflow.com/questions/ask?showauthor=False&display=None
- это не удается, если "http: //" опущено в URL-адресе результата.
Каков наиболее надежный, общий и небезопасный способ извлечения URL-адресов, содержащихся в других URL-адресах, в Python?