ingin membantu? Berikut adalah pilihan Anda:","Crunchbase","Tentang Kami","Terima kasih kepada semua orang atas dukungan yang luar biasa!","Tautan Cepat","Program afiliasi","ProxyScrape uji coba premium","Pemeriksa Proksi Online","Jenis proxy","Negara-negara proksi","Kasus penggunaan proxy","Penting","Kebijakan cookie","Penafian","Kebijakan privasi","Syarat dan ketentuan","Media Sosial","Facebook","LinkedIn","Twitter","Quora","Telegram","Perselisihan"," © Hak Cipta 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgia | PPN BE 0749 716 760"]}
Owning a list of email prospects can help marketers to scale up their businesses. By scraping email addresses using Python scripts, business people can have better outreach to their audience. MailButler.io says that there are nearly 4.3 billion email users globally which is estimated to reach 4.6 billion by 2025. These statistics say that people
Memiliki daftar prospek email dapat membantu para pemasar untuk meningkatkan bisnis mereka. Dengan mengikis alamat email menggunakan skrip Python, para pebisnis dapat memiliki jangkauan yang lebih baik kepada audiens mereka.
MailButler.io mengatakan bahwa ada hampir 4,3 miliar pengguna email di seluruh dunia yang diperkirakan akan mencapai 4,6 miliar pada tahun 2025. Statistik ini mengatakan bahwa sebagian besar orang mengandalkan platform email sebagai mode komunikasi resmi mereka. Artikel ini akan memandu Anda melalui proses scraping alamat email menggunakan bahasa python.
Salah satu cara termudah untuk mendapatkan klien yang baik adalah dengan memiliki sebanyak mungkin alamat email bisnis dan mengirimkan detail layanan Anda kepada mereka berkali-kali. Ada banyak alat pengikis yang ada di internet yang menyediakan layanan ini secara gratis, tetapi mereka memiliki batas data penarikan. Mereka juga menawarkan batas ekstraksi data tak terbatas, tetapi berbayar. Mengapa harus membayar mereka jika Anda bisa membuatnya dengan tangan Anda sendiri? Mari kita bahas langkah-langkah untuk membuat scraping tool yang berkualitas menggunakan Python.
Artikel Terkait
Alat Scraping Web Python Terbaik
Meskipun ini akan menjadi contoh yang sangat sederhana untuk pemula, ini akan menjadi pengalaman belajar, terutama bagi mereka yang baru mengenal web scraping. Ini akan menjadi tutorial langkah demi langkah yang akan membantu Anda mendapatkan alamat email tanpa batas. Mari kita mulai dengan proses pembuatan web scraper cerdas kita.
Kami akan menggunakan enam modul berikut ini untuk proyek kami.
impor kembali
permintaanimpor
from urllib.parse import urlsplit
from collections import deque
from bs4 import BeautifulSoup
import pandas as pd
dari google.colab mengimpor berkas-berkas
Rincian modul yang diimpor diberikan di bawah ini:
Pada langkah ini, kita akan menginisialisasi deque yang akan menyimpan URL yang dikikis, URL yang tidak dikikis, dan satu set penyimpanan email yang berhasil dikikis dari situs web.
# membaca url dari masukan
original_url = input("Masukkan url situs web: ")
# untuk menyimpan url yang akan di-scraping
unscraped = deque([original_url])
# untuk menyimpan url yang sudah di-scraping
scraped = set()
# untuk menyimpan email yang diambil
email = set()
Elemen duplikat tidak diperbolehkan dalam satu set, jadi semuanya unik.
while len(unscraped):
# pindahkan unsraped_url ke setscraped_urls
url = unscraped.popleft() # popleft(): Menghapus dan mengembalikan sebuah elemen dari sisi kiri deque
scraped.add(url)
parts = urlsplit(url)
urlsplit() mengembalikan 5-tuple: (skema pengalamatan, lokasi jaringan, jalur, kueri, fragmen, pengenal).
Saya tidak dapat menampilkan contoh input dan output untuk urlsplit() karena alasan kerahasiaan, tetapi setelah Anda mencobanya, kode akan meminta Anda untuk memasukkan beberapa nilai (alamat situs web). Keluarannya akan menampilkan SplitResult(), dan di dalam SplitResult() akan ada lima atribut.
Ini akan memungkinkan kita untuk mendapatkan bagian dasar dan jalur untuk URL situs web.
base_url = "{0.scheme}://{0.netloc}".format(parts)
if '/' in parts.path:
path = url[:url.rfind('/')+1]
else:
path = url
mencoba:
response = requests.get(url)
except (requests.exceptions.MissingSchema, requests.exceptions.ConnectionError):
# abaikan halaman dengan kesalahan dan lanjutkan dengan url berikutnya
lanjutkan
# Anda dapat mengedit ekspresi reguler sesuai kebutuhan Anda
new_emails = set(re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.com",
response.text, re.I)) # re.I: (abaikan huruf besar/kecil)
emails.update(new_emails)
Ekspresi reguler sangat membantu ketika Anda ingin mengekstrak informasi yang Anda inginkan. Jika Anda tidak nyaman dengan mereka, Anda dapat melihat Python RegEx untuk lebih jelasnya.
# membuat sup yang indah untuk dokumen html
sup = 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"):
# mengekstrak url tertaut dari jangkar
if "href" in anchor.attrs:
link = anchor.attrs["href"]
else
link = ''
# menyelesaikan pranala relatif (dimulai dengan /)
if link.startwith('/'):
link = base_url + link
elif not link.startswith('http'):
link = path + link
Kemudian kita akan menemukan URL baru dan menambahkannya ke dalam antrean yang belum diacak jika tidak ada di dalam antrean yang sudah diacak maupun yang belum diacak.
Ketika Anda mencoba kode sendiri, Anda akan melihat bahwa tidak semua tautan dapat dikikis, jadi kita juga perlu mengecualikannya,
if not link.endswith(".gz" ):
jika tidak tautan di unscraped dan bukan tautan di scraped:
unscraped.append(link)
Untuk menganalisis hasil dengan cara yang lebih baik, kami akan mengekspor email ke file CSV.
df = pd.DataFrame(emails, columns=["Email"]) # ganti dengan nama kolom yang Anda inginkan
df.to_csv('email.csv', index=False)
Jika Anda menggunakan Google Colab, Anda dapat mengunduh file ke mesin lokal Anda dengan
dari google.colab mengimpor file
files.download("email.csv")
Seperti yang sudah dijelaskan, saya tidak bisa menampilkan alamat email yang sudah dihapus karena masalah kerahasiaan.
[Penafian! Beberapa situs web tidak mengizinkan web scraping dan mereka memiliki bot yang sangat cerdas yang dapat memblokir IP Anda secara permanen, jadi lakukan scraping dengan risiko Anda sendiri].
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
Karena bisnis memerlukan banyak alamat email untuk membangun daftar kontak mereka, maka perlu untuk mengumpulkan data dari berbagai sumber. Proses pengumpulan data secara manual mungkin membosankan dan memakan waktu. Dalam hal ini, pengikis biasanya menggunakan proksi untuk mempercepat proses dan mem-bypass batasan yang ada. Proxyscrape menyediakan proksi dengan bandwidth tinggi yang mampu mengikis data tanpa batas dan bekerja 24/7 untuk memastikan fungsionalitas tanpa gangguan. Tingkat anonimitas proksi mereka cukup tinggi untuk menyembunyikan identitas pengikis.
1. Mengapa perlu mengikis alamat email?
Membuat daftar kontak potensial dengan alamat email yang memenuhi syarat akan memudahkan proses menjangkau audiens target. Karena sebagian besar orang menggunakan email sebagai media komunikasi mereka, maka akan lebih mudah untuk menjangkau mereka melalui alamat email.
2. Apakah kami memerlukan proxy untuk melakukan scraping alamat email?
Saat mengikis alamat email dari berbagai sumber, pengikis mungkin menghadapi beberapa tantangan seperti blokir IP atau hambatan geografis. Dalam kasus ini, proxy akan menyembunyikan alamat pengguna dengan alamat proxy dan menghapus blokir dalam mengakses situs web yang diblokir.
3. Apakah legal untuk mengikis alamat email?
Mengumpulkan data yang tersedia untuk umum selalu legal. Jadi, scraper harus memastikan data yang mereka kumpulkan tersedia di domain publik. Jika tidak, mereka dapat mengumpulkan data dengan izin terlebih dahulu untuk menjaga legalitas dalam melakukan scraping.
Pada artikel ini, kami telah mengeksplorasi satu lagi keajaiban web scraping dengan menunjukkan contoh praktis untuk mengais alamat email. Kami telah mencoba pendekatan yang paling cerdas dengan membuat perayap web kami menggunakan Python dan ini adalah pustaka yang paling mudah namun paling kuat yang disebut BeautfulSoup. Web Scraping dapat sangat membantu jika dilakukan dengan benar dengan mempertimbangkan kebutuhan Anda. Meskipun kami telah menulis kode yang sangat sederhana untuk mengais alamat email, kode ini benar-benar gratis, dan juga, Anda tidak perlu bergantung pada layanan lain untuk ini. Saya mencoba yang terbaik untuk menyederhanakan kode sebanyak mungkin dan juga menambahkan ruang untuk kustomisasi sehingga Anda dapat mengoptimalkannya sesuai dengan kebutuhan Anda sendiri.
Jika Anda mencari layanan proxy untuk digunakan selama proyek penggalian Anda, jangan lupa untuk melihat ProxyScrape proxy residensial dan premium.