хотите помочь? Вот ваши варианты:","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 - лучший способ в %году%","Библиотека python называется \"BeautifulSoup\" и может автоматически соскребать данные из любой новостной статьи. Единственное требование - базовые знания HTML для нахождения HTML-тега в исходном коде страницы, содержащего данные, которые необходимо извлечь.","Ответ: это зависит от условий сайта. Но большинство новостных статей можно соскребать, поскольку вся информация намеренно выкладывается в открытый доступ. Все публичные данные можно соскребать, если ваш метод соскребания не вредит данным или владельцу сайта.","С помощью библиотеки python под названием \"BeautifulSoup\" вы можете скреативить Google News или любые другие новостные статьи с помощью python. Установите библиотеку и надежный прокси-сервер для предотвращения блокировки IP-адреса целевого сервера."]}
Новости - лучший способ узнать, что происходит в мире. Для инженеров по обработке данных новостные статьи - один из лучших способов собрать нереальные объемы данных. Больше данных - больше понимания, а это единственная возможность для инноваций в технологиях и для того, чтобы человечество достигло больших высот, чем когда-либо прежде. Но есть
Новости - лучший способ узнать, что происходит в мире. Для инженеров по обработке данных новостные статьи - один из лучших способов собрать нереальные объемы данных. Больше данных - больше понимания, а это единственная возможность усовершенствовать наши технологии и поднять человечество на большую высоту, чем когда-либо прежде. Но новостей очень много, и собрать все данные вручную просто невозможно. Как же лучше всего автоматически получать данные? Ответ - веб-скраппинг новостных статей с помощью 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.