Есть ли в любом случае, что я могу сделать python, щелкнуть ссылку, такую как ссылка bit.ly, а затем очистить полученную ссылку? Когда я очищаю определенную страницу, единственной ссылкой, которую я могу очистить, является ссылка, которая перенаправляет, где она перенаправляется, где находится информация, в которой я нуждаюсь.В любом случае, чтобы очистить ссылку, которая перенаправляет?
ответ
Есть 3 вида переадресаций
HTTP
- как информация в заголовках ответа (с кодом 301, 302, 3xx)HTML
- в качестве тега<meta>
в HTML (Википедия: Meta refresh)JavaScript
- в качестве кода, подобногоwindow.location = new_url
requests
выполнить HTTP
переназначения и держать все URLs в r.history
import requests
r = requests.get('http://' + 'bit.ly/english-4-it')
print(r.history)
print(r.url)
результат:
[<Response [301]>, <Response [301]>]
http://helion.pl/ksiazki/english-4-it-praktyczny-kurs-jezyka-angielskiego-dla-specjalistow-it-i-nie-tylko-beata-blaszczyk,anginf.htm
КСТАТИ: SO не позволяет ставить Bitly ссылку в тексте, так что я использовал конкатенацию.
Если на странице используется JavaScript, вы можете использовать 'Selenium' (или аналогичный модуль), чтобы открыть веб-браузер (который выполнит все JavaScript на странице) и управлять веб-браузером и получать данные, кнопки и т. Д. – furas
, если вы знаете, эта страница перенаправляйте URL-адрес с помощью '? variant = 33334400198', тогда вы можете анализировать HTML и JavaScript, чтобы найти его, и каждый раз получать новое значение из кода. – furas
Пожалуйста, уточните? Я не могу очистить и найти корреляцию с этим «? Variant = 33334400198» и продуктом, поэтому добавление этой строки в html не представляется возможным, является ли Selenium единственным способом получить этот URL-адрес? – ColeWorld
Да. Но мы не знаем, как исправить вашу программу, если мы не знаем более точно, что она делает. Пожалуйста, предоставьте краткую (пять или шесть строк) ** полную ** программу, которая демонстрирует ваш вопрос. [Изменить] ваш вопрос, чтобы включить весь [mcve]. Благодаря! –
'request' автоматически выполняет перенаправления HTTP и сохраняет информацию обо всех URL-адресах в' r.history'. Если страница использует переадресацию 'HTML' (в теге' '), вы можете легко найти ее и использовать' request' с этим URL-адресом. 'запросы' могут не только перенаправлять перенаправления JavaScript, потому что он не выполняет JavaScript, и может быть слишком много возможных способов перенаправления для поиска url в коде. – furas