хотите помочь? Вот ваши варианты:","Crunchbase","О нас","Спасибо всем за потрясающую поддержку!","Быстрые ссылки","Партнерская программа","Премиум","ProxyScrape премиум-проба","Проверка прокси-сервера онлайн","Типы прокси-серверов","Страны-посредники","Примеры использования прокси-сервера","Важно","Политика использования файлов cookie","Отказ от ответственности","Политика конфиденциальности","Условия и положения","Социальные сети","Facebook","LinkedIn","Twitter","Quora","Telegram","Дискорд","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
В современном мире все используют новые технологии. Вы можете получить доступ к структурированным данным в автоматизированном режиме с помощью веб-скрепинга. Например, вы можете использовать веб-скраппинг для: Бесконечная прокрутка, также известная как бесконечная прокрутка, - это техника веб-дизайна, которую веб-сайты часто используют с AJAX или Javascript.
В современном мире все используют новые технологии. Вы можете получить доступ к структурированным данным в автоматизированном режиме с помощью веб-скрепинга. Например, вы можете использовать веб-скрепинг для:
Бесконечная прокрутка, также известная как бесконечный скроллинг, - это техника веб-дизайна, которую веб-сайты часто используют с AJAX или Javascript для динамической загрузки дополнительного контента, когда пользователь прокручивает страницу до самого низа. Эта техника приобрела популярность благодаря успеху в социальных сетях. Например, бесконечная прокрутка в Twitter осуществляется за счет асинхронной загрузки. Twitter выполняет вызовы AJAX после загрузки страницы, чтобы постоянно добавлять новый контент по мере прокрутки. Хотя бесконечная прокрутка имеет множество преимуществ, ее не рекомендуется использовать в задачах поиска, требующих от пользователя найти определенный контент.
Давайте сначала разберемся в преимуществах скраппинга страниц с бесконечной прокруткой.
Ниже перечислены некоторые причины, по которым необходимо скрапировать страницы с бесконечной прокруткой.
Помимо вышеперечисленных преимуществ скрапинга страниц с бесконечной прокруткой, есть и некоторые недостатки, например:
Давайте посмотрим, как с помощью Python скрафтить страницы с бесконечной прокруткой с помощью описанных ниже шагов.
Вам необходимо импортировать библиотеку Selenium.
from selenium import webdriver
из selenium.webdriver.common.keys import Keys
импортировать время
Здесь вам нужно выбрать браузер, который вы хотите использовать. Мы выберем Chrome, так как он предлагает больше возможностей, чем Firefox.
def get_selenium():
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
return (driver)
Аргумент headless, упомянутый выше, очень важен. Selenium не будет открывать Chrome в новом окне при запуске без головы в Python. Однако если вы столкнетесь с проблемой во время скраппинга, вы можете закомментировать опцию headless и посмотреть, что происходит в Chrome и что загружается на странице.
Мы можем опустить два флага: ignore-certificate-errors и incognito.
Если вы столкнулись с капчей или баннером cookie, который мешает загрузке страницы, вы можете нажать OK и перейти на страницу в обычном режиме. Однако если браузер неожиданно закрывается, вы можете использовать time.sleep(), чтобы приостановить выполнение кода и уделить достаточно времени отладке.
Чтобы исправить бесконечную прокрутку, вам нужно заглянуть в HTML-структуру вашей страницы и выполнить следующие действия.
Для лучшего понимания вы можете рассмотреть приведенный ниже пример.
selenium = get_selenium()
selenium.get("your/url")
last_elem = '';
while True:
current_last_elem = "#my-div > ul > li:last-child"
scroll = "document.querySelector(\'" + current_last_elem + "\').scrollIntoView();"
selenium.execute_script(scroll)
time.sleep(3)
if (last_elem == current_elem)
break
else
last_elem = current_elem
В приведенном выше коде мы использовали jQuery и Javascript внутри Python.
Вот,
selenium.get("your/url.com/{0}".format(keyword))
"document.querySelector(\'" + .. + "\').scrollIntoView();"
Здесь формат должен быть правильным, поэтому обратите внимание на одинарные и двойные кавычки, а также на управляющие символы.
Среди часто встречающихся проблем при бесконечной прокрутке можно назвать следующие:
Можно запустить js-скрипт из Python и получить в результате список.
Например, мы можем использовать приведенный ниже код, чтобы получить источники всех изображений на странице.
js_script = '''\
var jslist = []
document.querySelectorAll('img').forEach(i => jslist.push(i.src));
return jslist;
'' '
python_list = selenium.execute_script(js_script)
В приведенном выше коде,
Мы можем использовать тот же подход для ссылок href:
После этого мы можем запустить скрипт с помощью selenium.execute_script(). Затем мы можем сохранить возвращаемое значение js в переменной python, т.е. python_list.
Вот как мы можем скрапировать страницы с бесконечной прокруткой с помощью Python.
Вы знаете, что прокси - это сторонний сервер, который выступает в качестве посредника между клиентом, запрашивающим ресурс, и сервером, предоставляющим этот ресурс. Если вы хотите использовать прокси с Selenium и Python, вы можете использовать следующие строки кода.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s'% hostname +": "+port)
driver = webdriver.Chrome(chrome_options=chrome_options)
Для работы с бесконечной прокруткой вы можете использовать scroll-proxy, который поддерживает программную прокрутку прокручиваемых представлений в иерархии представлений. Если вы используете npm, вы можете установить scroll-proxy с помощью команды ниже. Для демонстрации использования scroll-proxy мы будем использовать js.
npm install scroll-proxy--save
После установки scroll-proxy вы можете создать объект ScrollProxy, используя приведенный ниже код.
var myScroll = новый ScrollProxy();
Вы можете видеть, что мы не передали никаких аргументов конструктору ScrollProxy, потому что он будет сообщать о действиях по умолчанию, когда пользователь прокручивает страницу.
Однако если вы хотите получать обновления, когда пользователь прокручивает страницу внутри определенного HTML-элемента, вам нужно передать его в конструктор.
var myDiv = document.querySelector('.scrollable');
var myDivScroll = new ScrollProxy(myDiv);
Ниже перечислены некоторые причины, по которым следует использовать прокси при скраппинге бесконечного скроллинга.
Мы уже говорили о том, что бесконечная прокрутка предпочтительна, когда пользователь не ищет конкретную информацию. Новостные сайты и ленты социальных сетей, которые постоянно генерируют новый контент, могут извлечь выгоду из бесконечной прокрутки. С другой стороны, бизнес-страницы и сайты электронной коммерции не являются хорошими кандидатами для бесконечной прокрутки, поскольку пользователи ищут конкретную информацию. Далее мы рассказали о том, как скрапировать страницы с бесконечной прокруткой с помощью Selenium. Для работы с бесконечным скроллингом мы также можем использовать вращающиеся жилые прокси, поскольку они помогают избежать капчи и фильтруют подозрительные запросы в заголовках.
Надеюсь, вы поняли, как скреативить страницы с бесконечной прокруткой с помощью Python.