python request.get не извлекает результаты, если в параметрах есть # anchor tag
Я пытался это довольно давно Мой URL имеет тег #
url = http://www.firstcry.com/search.aspx?q=blue%20jeans#q=@@@@1@0@20@@&gender=Unisex&PageNo=1
Когда я пытаюсь request.get(url)
метод, он только выбирает результаты, где url является тегом upto #, но фактический URL требует времени для полной загрузки и дает окончательный набор результатов (которые отличаются).
Как я могу избежать этого?
Большое спасибо.
1 ответ
Часть фрагмента URI (все, что после "#") обычно интерпретируется браузером. То есть извлеченный документ - это все, вплоть до "#". Это то что request.get(url)
фактически загружает: один файл (ресурс) с этим URI.
Теперь браузер затем "что-то делает" с фрагментом - прокручивает его, чаще всего. Браузер может делать другие вещи с фрагментом через JavaScript.
Похоже, вы видите, requests
получает файл, содержащий javascript, который при загрузке получает дополнительную информацию на основе фрагмента.
Это мало чем отличается от очистки динамического HTML, когда очищенная страница загружает JavaScript, который создает другой DOM.
Вам нужно будет использовать что-то вроде Selenium, или вам придется вручную интерпретировать результаты и загружать дополнительные URL-адреса.