хотите помочь? Вот ваши варианты:","Crunchbase","О нас","Спасибо всем за потрясающую поддержку!","Быстрые ссылки","Партнерская программа","Премиум","ProxyScrape премиум-проба","Проверка прокси-сервера онлайн","Типы прокси-серверов","Страны-посредники","Примеры использования прокси-сервера","Важно","Политика использования файлов cookie","Отказ от ответственности","Политика конфиденциальности","Условия и положения","Социальные сети","Facebook","LinkedIn","Twitter","Quora","Telegram","Дискорд","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
Новости - лучший способ узнать, что происходит в мире. Для инженеров по обработке данных новостные статьи - один из лучших способов собрать нереальные объемы данных. Больше данных - больше понимания, а это единственная возможность для инноваций в технологиях и для того, чтобы человечество достигло больших высот, чем когда-либо прежде. Но есть
Новости - лучший способ узнать, что происходит в мире. Для инженеров по обработке данных новостные статьи - один из лучших способов собрать нереальные объемы данных. Больше данных - больше понимания, а это единственная возможность усовершенствовать наши технологии и поднять человечество на большую высоту, чем когда-либо прежде. Но новостей очень много, и собрать все данные вручную просто невозможно. Как же лучше всего автоматически получать данные? Ответ - веб-скраппинг новостных статей с помощью python.
В этой статье мы создадим веб-скребок для сбора последних новостных статей из различных газет и сохранения их в виде текста. Мы пройдем через следующие два шага, чтобы получить подробный анализ того, как происходит весь процесс.
Поверхностное знакомство с веб-страницами и HTML.Веб-скраппинг с помощью Python и знаменитой библиотеки BeautifulSoup.
Не стесняйтесь переходить к любому разделу, чтобы узнать больше о том, как выполнять веб-скреппинг для новостных статей с помощью python
Если мы хотим получить важную информацию с какого-либо сайта или веб-страницы, важно знать, как этот сайт работает. Когда мы переходим по определенному URL-адресу с помощью любого веб-браузера (Chrome, Firefox, Mozilla и т. д.), эта веб-страница представляет собой комбинацию трех технологий,
HTML (HyperText Markup Language): HTML определяет содержание веб-страницы. Это стандартный язык разметки для добавления содержимого на сайт. Например, если вы хотите добавить на свой сайт текст, изображения или любые другие материалы, HTML поможет вам в этом.
CSS (каскадные таблицы стилей): Используется для стилизации веб-страниц. CSS управляет всеми визуальными эффектами, которые вы видите на конкретном сайте.
JavaScript: JavaScript - это мозг веб-страницы. JavaScript выполняет всю логическую обработку и функциональность веб-страницы. Таким образом, он позволяет сделать контент и стиль интерактивными.
Эти три языка программирования позволяют нам создавать и управлять аспектами веб-страницы.
Я полагаю, что для этой статьи вы знаете основы веб-страницы и HTML. Некоторые понятия HTML, такие как divs, теги, заголовки и т. д., могут оказаться очень полезными при создании этого веб-скрепера. Вам не нужно знать все, но только основы дизайна веб-страницы и того, как информация содержится на ней, и все готово.
В Python есть несколько пакетов, позволяющих соскребать информацию с веб-страниц. Мы продолжим с BeautifulSoup, потому что это одна из самых известных и простых в использовании библиотек Python для веб-скрапинга.
BeautifulSoup лучше всего подходит для разбора HTML-содержимого URL-адреса и доступа к нему с помощью тегов и меток. Поэтому с его помощью удобно извлекать определенные фрагменты текста с сайта.
С помощью всего 3-5 строк кода мы можем совершить волшебство и извлечь из Интернета любой текст выбранного нами сайта, что говорит о том, что это простой в использовании, но мощный пакет.
Мы начнем с самых основ. Чтобы установить пакет библиотек, введите следующую команду в ваш дистрибутив Python,
! pip install beautifulsoup4
Мы также будем использовать "модуль requests", поскольку он предоставляет BeautifulSoup HTML-код любой страницы. Чтобы установить его, введите следующую команду в ваш дистрибутив Python,
! pip install requests
Этот модуль запросов позволит нам получить HTML-код веб-страницы и перемещаться по ней с помощью пакета BeautfulSoup. Две команды, которые значительно облегчат нашу работу, это
find_all(element tag, attribute): Эта функция принимает в качестве параметров тег и атрибуты и позволяет найти любой HTML-элемент на веб-странице. Она определит все элементы одного типа. Мы можем использовать функцию find(), чтобы получить только первый элемент.
get_text(): После того как мы нашли заданный элемент, эта команда позволяет извлечь внутренний текст.
Чтобы просмотреть HTML-код нашей веб-страницы и найти элементы, которые мы хотим извлечь, мы можем воспользоваться опцией "осмотреть элемент", щелкнув правой кнопкой мыши на странице или просто нажав Ctrl+F. Это позволит вам просмотреть исходный код веб-страницы.
Найдя интересующие нас элементы, мы получим HTML-код с помощью модуля requests, а для извлечения этих элементов воспользуемся BeautifulSoup.
Для этой статьи мы будем работать с английской газетой EL Paris. Мы соскребем заголовки новостных статей с первой страницы, а затем их текст.
Если мы проанализируем HTML-код новостных статей, то увидим, что статья на первой странице имеет такую структуру,
The title has <h2> element with itemprop=”headline” and class=”articulo-titulo” attributes. It has an href attribute containing the text. So we will now extract the text using the following commands:
импортировать запросы
из bs4 import BeautifulSoup
Получив HTML-контент с помощью модуля requests, мы можем сохранить его в переменной coverpage:
# Запрос
r1 = requests.get(url)
r1.status_code
# Мы сохраним в coverpage содержимое титульной страницы
coverpage = r1.content
Далее мы определим переменную soup,
# Создание супа
soup1 = BeautifulSoup(coverpage, 'html5lib')
В следующей строке кода мы найдем искомые элементы,
# Идентификация новостей
coverpage_news = soup1.find_all('h2', class_='articulo-titulo')
Используя final_all, мы получаем все вхождения. Поэтому он должен возвращать список, в котором каждый элемент является новостной статьей,
Чтобы извлечь текст, мы используем следующую команду:
coverpage_news[4].get_text()
Если мы хотим получить доступ к значению атрибута (в нашем случае ссылки), мы можем использовать следующую команду,
coverpage_news[4]['href']
Это позволит нам получить ссылку в виде обычного текста.
Если вы разобрались со всеми понятиями до этого момента, то можете заниматься веб-сканированием любого контента по своему усмотрению.
Следующий шаг включает в себя доступ к содержимому каждой новостной статьи с помощью атрибута href, получение исходного кода для поиска абзацев в HTML-коде и, наконец, получение их с помощью BeautifulSoup. Это тот же процесс, что мы описали выше, но нам нужно определить теги и атрибуты, которые идентифицируют содержимое новостной статьи.
Код для полной функциональности приведен ниже. Я не буду объяснять каждую строку отдельно, так как код прокомментирован, и вы сможете понять его, прочитав эти комментарии.
количество_статей = 5
# Пустые списки для содержания, ссылок и заголовков
news_contents = []
list_links = []
list_titles = []
for n in np.arange(0, number_of_articles):
# только новостные статьи (есть также альбомы и другие вещи)
if "inenglish" not in coverpage_news[n].find('a')['href']:
продолжить
# Получение ссылки на статью
link = coverpage_news[n].find('a')['href']
list_links.append(link)
# Получение заголовка
title = coverpage_news[n].find('a').get_text()
list_titles.append(title)
# Чтение содержимого (оно разделено на абзацы)
article = requests.get(link)
article_content = article.content
soup_article = BeautifulSoup(article_content, 'html5lib')
body = soup_article.find_all('div', class_='articulo-cuerpo')
x = body[0].find_all('p')
# Объединение параграфов
list_paragraphs = []
for p in np.arange(0, len(x)):
paragraph = x[p].get_text()
list_paragraphs.append(paragraph)
final_article = " ".join(list_paragraphs)
news_contents.append(final_article)
Давайте поместим извлеченные статьи в следующий список:
# df_features
df_features = pd.DataFrame(
{'Article Content': news_contents
})
# df_show_info
df_show_info = pd.DataFrame(
{'Article Title': list_titles,
'Article Link': list_links})
df_features
df_show_info
Чтобы определить лучший пользовательский опыт, мы также измерим время, которое требуется скрипту для получения новостей. Для этого мы определим функцию, а затем вызовем ее. Опять же, я не буду объяснять каждую строчку кода, так как код прокомментирован. Чтобы получить четкое понимание, вы можете прочитать эти комментарии.
def get_news_elpais():
# url definition
url = "https://elpais.com/elpais/inenglish.html"
# Request
r1 = requests.get(url)
r1.status_code
# We'll save in coverpage the cover page content
coverpage = r1.content
# Soup creation
soup1 = BeautifulSoup(coverpage, 'html5lib')
# News identification
coverpage_news = soup1.find_all('h2', class_='articulo-titulo')
len(coverpage_news)
number_of_articles = 5
# Empty lists for content, links and titles
news_contents = []
list_links = []
list_titles = []
for n in np.arange(0, number_of_articles):
# only news articles (there are also albums and other things)
if "inenglish" not in coverpage_news[n].find('a')['href']:
continue
# Getting the link of the article
link = coverpage_news[n].find('a')['href']
list_links.append(link)
# Getting the title
title = coverpage_news[n].find('a').get_text()
list_titles.append(title)
# Reading the content (it is divided in paragraphs)
article = requests.get(link)
article_content = article.content
soup_article = BeautifulSoup(article_content, 'html5lib')
body = soup_article.find_all('div', class_='articulo-cuerpo')
x = body[0].find_all('p')
# Unifying the paragraphs
list_paragraphs = []
for p in np.arange(0, len(x)):
paragraph = x[p].get_text()
list_paragraphs.append(paragraph)
final_article = " ".join(list_paragraphs)
news_contents.append(final_article)
# df_features
df_features = pd.DataFrame(
{'Content': news_contents
})
# df_show_info
df_show_info = pd.DataFrame(
{'Article Title': list_titles,
'Article Link': list_links,
'Newspaper': 'El Pais English'})
return (df_features, df_show_info)
ProxyScrape является одним из самых популярных и надежных прокси-провайдеров в Интернете. Три прокси-сервиса включают в себя выделенные прокси-серверы в дата-центрах, прокси-серверы для жилых домов и премиум-прокси-серверы. Итак, какой же прокси-сервер лучше всего подходит для поиска новостных статей с помощью python? Прежде чем ответить на этот вопрос, лучше всего ознакомиться с особенностями каждого прокси-сервера.
Выделенный прокси-сервер лучше всего подходит для высокоскоростных онлайн-задач, таких как потоковая передача большого количества данных (по размеру) с различных серверов для целей анализа. Это одна из основных причин, по которой организации выбирают выделенные прокси для передачи больших объемов данных за короткий промежуток времени.
Выделенный прокси-центр имеет несколько функций, таких как неограниченная пропускная способность и одновременные соединения, выделенные HTTP-прокси для удобного общения и IP-аутентификация для большей безопасности. Благодаря 99,9% времени безотказной работы, вы можете быть уверены, что выделенный центр данных всегда будет работать во время любой сессии. И последнее, но не менее важное: ProxyScrape предоставляет отличную службу поддержки клиентов и поможет вам решить проблему в течение 24-48 рабочих часов.
Следующий прокси - жилой. Резидентный прокси - это прокси для всех обычных потребителей. Основная причина в том, что IP-адрес резидентного прокси похож на IP-адрес, предоставляемый провайдером. Это означает, что получить разрешение от целевого сервера на доступ к его данным будет проще, чем обычно.
Еще одна особенность жилого прокси ProxyScrape- это вращающийся прокси. Вращающийся прокси поможет вам избежать перманентного бана вашего аккаунта, потому что ваш резидентный прокси динамически меняет ваш IP-адрес, что затрудняет проверку целевым сервером того, используете вы прокси или нет.
Помимо этого, другими особенностями жилого прокси являются: неограниченная пропускная способность, наряду с одновременным подключением, выделенные HTTP/s прокси, прокси в любое время сессии из-за 7 миллионов плюс прокси в пуле прокси, имя пользователя и пароль аутентификации для большей безопасности, и последнее, но не менее важное, возможность изменить страну сервера. Вы можете выбрать нужный вам сервер, добавив код страны к имени пользователя при аутентификации.
Последний - это премиум-прокси. Премиум-прокси - это то же самое, что и прокси для выделенных центров обработки данных. Функциональность остается прежней. Основное отличие - доступность. В премиум-прокси список прокси (список, содержащий прокси) доступен каждому пользователю в сети ProxyScrape. Именно поэтому премиум-прокси стоят дешевле, чем выделенные прокси для дата-центров.
Итак, что же является наилучшим решением для лучшего HTTP-прокси для веб-скрапинга новостных статей с помощью python? Ответом будет "жилой прокси". Причина проста. Как было сказано выше, прокси по месту жительства - это вращающийся прокси, то есть ваш IP-адрес будет динамически меняться в течение определенного периода времени, что может помочь обмануть сервер, отправив много запросов за небольшой промежуток времени и не получив блокировку IP-адреса.
Далее лучше всего изменить прокси-сервер в зависимости от страны. Для этого достаточно добавить ISO_CODE страны в конце IP-аутентификации или аутентификации по имени пользователя и паролю.
Рекомендованное чтение:
Скрап комментариев YouTube - 5 простых шаговТоп-8 лучших инструментов для веб-скрапинга на Python в 2023 году
В этой статье мы рассмотрели основы веб-скреппинга, поняв основы дизайна и структуры потока веб-страниц. Мы также получили практический опыт извлечения данных из новостных статей. При правильном подходе веб-скреппинг может творить чудеса. Например, на основе извлеченных данных можно создать полностью оптимизированную модель, которая будет предсказывать категории и показывать резюме пользователю. Самое главное - определить свои требования и понять структуру страницы. В Python есть несколько очень мощных и в то же время простых в использовании библиотек для извлечения данных по вашему выбору. Это сделало веб-скреппинг очень простым и увлекательным.
Важно отметить, что этот код предназначен для извлечения данных с данной конкретной веб-страницы. Если мы хотим сделать это с любой другой страницы, нам нужно оптимизировать наш код в соответствии со структурой этой страницы. Но как только мы узнаем, как их определить, процесс будет точно таким же.
В этой статье мы надеемся подробно рассказать о практическом подходе к веб-скреппингу новостных статей с помощью python. Следует помнить, что прокси-сервер является абсолютной необходимостью для веб-скрепинга. Он помогает предотвратить любые блокировки IP-адресов целевого сервера. ProxyScrape Мы предоставляем отличный и надежный прокси-сервер для вашего веб-скраппинга для новостных статей с использованием python.