хотите помочь? Вот ваши варианты:","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 - Ultimate Guide %year%"]}
Владение списком адресов электронной почты может помочь маркетологам расширить свой бизнес. Перебирая адреса электронной почты с помощью скриптов Python, бизнесмены смогут лучше охватить свою аудиторию. По данным MailButler.io, в мире насчитывается около 4,3 миллиарда пользователей электронной почты, а к 2025 году их число достигнет 4,6 миллиарда. Эта статистика говорит о том, что люди
Владение списком адресов электронной почты может помочь маркетологам расширить свой бизнес. Сокращая адреса электронной почты с помощью скриптов Python, бизнесмены могут улучшить работу со своей аудиторией.
По данным MailButler.io, во всем мире насчитывается около 4,3 миллиарда пользователей электронной почты, а к 2025 году их число достигнет 4,6 миллиарда. Эта статистика говорит о том, что люди в основном полагаются на платформу электронной почты в качестве официального способа общения. В этой статье мы расскажем вам о том, как перебирать адреса электронной почты с помощью языка python.
Один из самых простых способов получить хорошую клиентуру - иметь как можно больше адресов электронной почты для бизнеса и раз за разом отправлять им информацию о своих услугах. В интернете существует множество инструментов для скраппинга, которые предоставляют эти услуги бесплатно, но имеют лимиты на извлечение данных. Они также предлагают неограниченные лимиты на извлечение данных, но они платные. Зачем платить, если можно создать такой инструмент своими руками? Давайте обсудим шаги по созданию качественного инструмента для скраппинга с помощью Python.
Похожие статьи
Лучшие инструменты для веб-скрапинга на Python
Как создать прокси-сервер в Python
Несмотря на то что это будет очень простой пример для новичков, он будет полезен для обучения, особенно для тех, кто только начинает заниматься веб-скраппингом. Это будет пошаговое руководство, которое поможет вам получить адреса электронной почты без каких-либо ограничений. Давайте начнем с процесса создания нашего интеллектуального веб-скрапера.
В нашем проекте мы будем использовать следующие шесть модулей.
импорт ре
импортировать запросы
from urllib.parse import urlsplit
из collections import deque
из bs4 import BeautifulSoup
import pandas as pd
из google.colab import files
Ниже приведена подробная информация об импортированных модулях:
re - для сопоставления регулярных выражений.requests - для отправки HTTP-запросов.urlsplit - для разделения URL на составные части.deque - контейнер в виде списка, используемый для добавления и выгрузки с обоих концов.BeautifulSoup - для извлечения данных из HTML-файлов различных веб-страниц.pandas - для форматирования писем в DataFrame и для дальнейших операций.
На этом шаге мы инициализируем deque, в котором будут храниться отсканированные URL, неотсканированные URL и набор сохраненных электронных писем, успешно отсканированных с веб-сайтов.
# считывание url из ввода
original_url = input("Введите url сайта: ")
# сохранить урлы для последующего скрапирования
unscraped = deque([original_url])
# для сохранения отскребленных урлов
scraped = set()
# для сохранения найденных писем
emails = set()
Дублирование элементов в наборе не допускается, поэтому все они уникальны.
Первый шаг - отличить URL-адреса, подвергшиеся и не подвергшиеся обрезке. Для этого нужно перевести URL из разряда нескрепленных в разряд скрепленных.
while len(unscraped):
# переместите unsraped_url в наборscraped_urls
url = unscraped.popleft() # popleft(): Удаление и возврат элемента из левой части deque
scraped.add(url)
Следующий шаг - извлечение данных из разных частей URL. Для этого мы будем использовать urlsplit.
parts = urlsplit(url)
urlsplit() возвращает 5 кортежей: (схема адресации, сетевое расположение, путь, запрос, фрагмент, идентификатор).
Я не могу показать примеры входных и выходных данных для urlsplit() по конфиденциальным причинам, но если вы попробуете, код попросит вас ввести некоторое значение (адрес сайта). На выходе будет отображен SplitResult(), а внутри SplitResult() будет пять атрибутов.
Это позволит нам получить базовую часть и часть пути для URL-адреса веб-сайта.
base_url = "{0.scheme}://{0.netloc}".format(parts)
if '/' in parts.path:
path = url[:url.rfind('/')+1]
else:
path = url
Это время для отправки HTTP GET-запроса на сайт.
пробовать:
response = requests.get(url)
except (requests.exceptions.MissingSchema, requests.exceptions.ConnectionError):
# игнорируем страницы с ошибками и продолжаем со следующего url
продолжить
Для извлечения адресов электронной почты мы воспользуемся регулярным выражением, а затем добавим их в набор адресов электронной почты.
# Вы можете изменить регулярное выражение в соответствии с вашими требованиями
new_emails = s et(re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.com",
response.text, re.I)) # re.I: (игнорируем регистр)
emails.update(new_emails)
Регулярные выражения очень полезны, когда вы хотите извлечь информацию по своему усмотрению. Если вы еще не знакомы с ними, вы можете посмотреть на Python RegEx для получения более подробной информации.
Следующий шаг - поиск всех URL-адресов, связанных с веб-сайтом.
# создайте красивый суп для html-документа
soup = BeautifulSoup(response.text, 'lxml')
The <a href=””> tag indicates a hyperlink that can be used to find all the linked URLs in the document.
for anchor in soup.find_all("a"):
# извлекаем связанный url из якоря
if "href" в anchor.attrs:
link = anchor.attrs["href"]
else:
link = ''
# разрешаем относительные ссылки (начинающиеся с /)
if link.startswith('/'):
link = base_url + link
elif not link.startswith('http'):
link = path + link
Затем мы найдем новые URL и добавим их в очередь нескрепленных, если их нет ни в скрэппированных, ни в нескреппированных.
Когда вы попробуете код самостоятельно, вы заметите, что не все ссылки могут быть соскоблены, поэтому нам также нужно исключить их,
если не link.endswith(".gz" ):
если нет ссылки в unscraped и нет ссылки в scraped:
unscraped.append(link)
Чтобы лучше проанализировать результаты, мы экспортируем письма в CSV-файл.
df = pd.DataFrame(emails, columns=["Email"]) # замените название столбца на то, которое вам больше нравится
df.to_csv('email.csv', index=False)
Если вы используете Google Colab, вы можете загрузить файл на свой локальный компьютер следующим образом
из google.colab import files
files.download("email.csv")
Как уже объяснялось, я не могу показать вычеркнутые адреса электронной почты по соображениям конфиденциальности.
[Отказ от ответственности! Некоторые сайты не разрешают заниматься веб-скреппингом, и на них есть очень умные боты, которые могут навсегда заблокировать ваш IP, так что занимайтесь скреппингом на свой страх и риск].
import re
import requests
from urllib.parse import urlsplit
from collections import deque
from bs4 import BeautifulSoup
import pandas as pd
from google.colab import files
# read url from input
original_url = input("Enter the website url: ")
# to save urls to be scraped
unscraped = deque([original_url])
# to save scraped urls
scraped = set()
# to save fetched emails
emails = set()
while len(unscraped):
url = unscraped.popleft()
scraped.add(url)
parts = urlsplit(url)
base_url = "{0.scheme}://{0.netloc}".format(parts)
if '/' in parts.path:
path = url[:url.rfind('/')+1]
else:
path = url
print("Crawling URL %s" % url)
try:
response = requests.get(url)
except (requests.exceptions.MissingSchema, requests.exceptions.ConnectionError):
continue
new_emails = set(re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.com", response.text, re.I))
emails.update(new_emails)
soup = BeautifulSoup(response.text, 'lxml')
for anchor in soup.find_all("a"):
if "href" in anchor.attrs:
link = anchor.attrs["href"]
else:
link = ''
if link.startswith('/'):
link = base_url + link
elif not link.startswith('http'):
link = path + link
Поскольку компаниям требуется множество адресов электронной почты для составления списка контактов, необходимо собирать данные из нескольких источников. Процесс ручного сбора данных может быть утомительным и отнимать много времени. В этом случае скраперы обычно прибегают к помощи прокси, чтобы ускорить процесс и обойти ограничения, которые возникают на их пути. Proxyscrape предоставляет прокси с высокой пропускной способностью, которые способны собирать неограниченное количество данных и работают 24/7, чтобы обеспечить бесперебойную работу. Уровень анонимности их прокси достаточно высок, чтобы скрыть личность скреперов.
1. Почему необходимо собирать адреса электронной почты?
Создание списка потенциальных контактов с квалифицированными адресами электронной почты облегчит процесс обращения к целевой аудитории. Поскольку большинство людей используют электронную почту в качестве средства коммуникации, с ними гораздо проще связаться через электронные адреса.
2. Нужны ли нам прокси-серверы для поиска адресов электронной почты?
При сборе адресов электронной почты из различных источников скраперы могут столкнуться с некоторыми проблемами, такими как блокировка IP-адресов или географические барьеры. В этом случае прокси-серверы скрывают адреса пользователей с помощью прокси-адреса и устраняют блокировку доступа к заблокированным сайтам.
3. Законно ли скрести адреса электронной почты?
Сбор общедоступных данных всегда является законным. Поэтому скреперы должны убедиться, что данные, которые они собирают, находятся в открытом доступе. Если это не так, они могут собирать данные с предварительного разрешения, чтобы сохранить законность сбора.
В этой статье мы рассмотрели еще одно чудо веб-скраппинга, показав практический пример соскребания адресов электронной почты. Мы попробовали самый разумный подход, создав наш веб-краулер с помощью Python и самой простой и в то же время мощной библиотеки под названием BeautfulSoup. Веб-скраппинг может принести огромную пользу, если он сделан правильно, с учетом ваших требований. Хотя мы написали очень простой код для сбора адресов электронной почты, он совершенно бесплатен, и вам не нужно полагаться на другие сервисы для этого. Я постарался максимально упростить код, а также добавил возможности для настройки, чтобы вы могли оптимизировать его в соответствии со своими требованиями.
Если вы ищете прокси-сервисы для использования в своих скрап-проектах, не забудьте посмотреть на ProxyScrape жилые и премиум-прокси.