Cara Mengikis Data dari Instagram menggunakan Python

Diterbitkan: 2018-10-27
Daftar Isi menunjukkan
Cara Mengikis Data Instagram
Mengekstrak Data Instagram dari Instagrammer teratas
Mengekstrak Tautan Gambar untuk Tagar yang Diberikan
Mengapa Berusaha?
Bagaimana Mengintegrasikan Sistem Scraping Dengan Bisnis Anda?
Perlu Bantuan dengan Mengekstrak Data Web?

Jika kota itu berbicara tentang sebuah video, itu harus di YouTube, jika kota itu tergila-gila dengan sebuah artikel, itu harus di Facebook, dan jika seluruh kota mendiskusikan foto-foto terbaru, mereka hanya perlu di Instagram. Berikut cara mengikis data instagram

Didirikan pada tahun 2010, Instagram telah menjadi aplikasi berbagi foto terbesar di seluruh dunia, dan situs webnya memiliki fitur di 15 situs web teratas di peringkat Alexa paling sering. Dari hari-hari awal pembatasan unggahan gambar hanya 1×1, Instagram (sebagian besar disebut 'insta'), telah berkembang pesat. Anda dapat mengunggah hampir semua media di Instagram akhir-akhir ini, satu set foto, video, dubsmash, dan banyak lagi. Namun, hal yang paling disukai di Instagram adalah profil selebriti, dan tagar. Faktanya Wikipedia mencantumkan beberapa profil Instagram teratas - yang memiliki pengikut terbanyak di seluruh dunia. Angkanya naik hingga jutaan pengikut yang memeriksa posting mereka setiap hari. Pada saat yang sama, hashtag adalah fitur penting lainnya di Instagram. Mereka membuat satu set gambar serupa, dan karenanya jika ada yang mencari hashtag di Instagram, mereka pasti akan menemukan gambar dengan kesamaan atau koneksi literal. Contoh sederhana – “#hot” dapat mengarahkan Anda ke gambar benda yang terbakar, api, serta gambar orang yang menganggapnya menarik.

Cara Mengikis Data Instagram

Jadi hari ini kita akan melihat data dari Instagram, lebih khusus lagi, halaman Instagram. Kami juga akan mencoret jumlah pengikut, jumlah orang yang mengikuti, dan jumlah posting dari beberapa profil Instagram teratas. Kami akan menggunakan file teks dengan tautan untuk profil untuk melakukan tugas. Anda dapat menambahkan lebih banyak profil ke daftar dan program juga akan mencetak detail untuk tautan baru yang Anda tempel.

Kedua, kami akan mengikis dan menyimpan data ke file teks, tautan gambar dengan tagar tertentu, yang disediakan oleh Anda. Di sini juga kita akan memiliki daftar kata yang disimpan dalam file teks, yang akan kita baca dengan python dan untuk setiap kata kita akan melakukan #kata dan mencari di Instagram dan mendapatkan tautan untuk gambar yang terkait dengan tagar.

Kedua aktivitas tersebut akan memiliki batasan tertentu, seperti Anda tidak bisa mendapatkan detail profil pribadi, dan hanya sejumlah tautan tertentu (Instagram memiliki batasan) yang akan diunduh.

Seperti biasa, sebelum kita mulai, sekali lagi saya akan meminta Anda untuk memeriksa tautan ini dan mengatur python, dan menginstal editor teks. Saya lebih suka atom dan jika Anda mengikuti tautannya, Anda akan mendapatkan tautan dan cara mengunduh dan menginstal langkah-langkah untuk itu. Instal juga paket python yang disebutkan menggunakan pip seperti yang diminta. Jika saya meminta Anda untuk menginstal beberapa paket lagi, itu dapat dilakukan saat bepergian.

Mengekstrak Data Instagram dari Instagrammer teratas

Jadi, turun ke kode, berikut adalah tautan untuk program yang diberikan. Apa yang pada dasarnya kami lakukan adalah, membaca tautan dari file teks yang diberikan, membuat objek sup yang indah untuk html yang diekstraksi untuk setiap tautan, dan mengekstrak beberapa informasi spesifik dari URL. Berikut ini tautan ke file teks yang telah kami gunakan. Ini adalah beberapa pengguna teratas seperti yang disebutkan di Wikipedia. Meskipun saya menyalin tautan secara manual dari Wikipedia, itu bisa dilakukan melalui pengikisan juga, tetapi kemudian saya akan meninggalkannya untuk artikel DIY lainnya.

[bahasa kode="python"]
#!/usr/bin/python
# -*- koding: utf-8 -*-
permintaan impor
impor urllib.request
impor urllib.parse
impor urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json

kelas Insta_Info_Scraper:

def getinfo(sendiri, url):
html = urllib.request.urlopen(url, context=self.ctx).read()
sup = BeautifulSoup(html, 'html.parser')
data = soup.find_all('meta', attrs={'property': 'og:description'
})
teks = data[0].get('konten').split()
pengguna = '%s %s %s' % (teks[-3], teks[-2], teks[-1])
pengikut = teks[0]
berikut = teks[2]
posting = teks[4]
print ('Pengguna:', pengguna)
print('Pengikut:', pengikut)
print ('Mengikuti:', mengikuti)
print('Postingan:', postingan)
cetak ('——————————')

def utama (sendiri):
self.ctx = ssl.create_default_context()
self.ctx.check_hostname = Salah
self.ctx.verify_mode = ssl.CERT_NONE

dengan open('users.txt') sebagai f:
self.content = f.readlines()
self.content = [x.strip() untuk x di self.content]
untuk url di self.content:
diri.getinfo(url)

jika __name__ == '__main__':
obj = Insta_Info_Scraper()
obj.main()
[/kode]

Setelah Anda menyimpan program dan file teks di folder yang sama dan menjalankan perintah-

python insta_info_scraper.py, ini yang akan muncul di command prompt-

[bahasa kode="python"]

H:Python_Algorithmic_ProblemsScraping_assignmentsInstagram-Data-Extractor>python insta_info_scraper.py
Pengguna: Selena Gomez (@selenagomez)
Pengikut: 144.1m
berikut: 49
Postingan: 1.468
———————————
Pengguna: Cristiano Ronaldo (@cristiano)
Pengikut: 143.1m
Mengikuti: 416
Postingan: 2,366
———————————
Pengguna: Ariana Grande (@arianagrande)
Pengikut: 130.5m
Mengikuti: 1,348
Postingan: 3,669
———————————
Pengguna: Taylor Swift (@taylorswift)
Pengikut: 112.1m
berikut: 0
Postingan: 233
———————————
Pengguna: <img draggable=”false” data-mce-resize=”false” data-mce-placeholder=”1″ data-wp-emoji=”1″ class=”emoji” alt=”&#x1f47b;” src=”https://sworg/images/core/emoji/11/svg/1f47b.svg”> neymarjr (@neymarjr)
Pengikut: 103,4m
Mengikuti: 817
Postingan: 4.263
———————————
Pengguna: Justin Bieber (@justinbieber)
Pengikut: 102,5m
berikut: 92
Postingan: 4.367
———————————
[/kode]

Meskipun ini adalah output prompt perintah, Anda dapat menyimpan detailnya ke file teks menggunakan-

python insta_info_scraper.py > info.txt

yang akan menyebabkan output masuk ke file teks, atau lebih baik lagi, Anda bisa menyimpan semuanya ke json. Sekarang, bagaimana cara membuat file json dengan semua info ini? Saya akan menunjukkannya di bawah ini:

[bahasa kode="python"]

#!/usr/bin/python
# -*- koding: utf-8 -*-
permintaan impor
impor urllib.request
impor urllib.parse
impor urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json

kelas Insta_Info_Scraper:

def getinfo(sendiri, url):
html = urllib.request.urlopen(url, context=self.ctx).read()
sup = BeautifulSoup(html, 'html.parser')
data = soup.find_all('meta', attrs={'property': 'og:description'
})
teks = data[0].get('konten').split()
pengguna = '%s %s %s' % (teks[-3], teks[-2], teks[-1])
pengikut = teks[0]
berikut = teks[2]
posting = teks[4]
info={}
info[“Pengguna”] = pengguna
info[“Pengikut”] = pengikut
info[“Mengikuti”] = mengikuti
info[“Postingan”] = postingan
self.info_arr.append(info)

def utama (sendiri):
self.ctx = ssl.create_default_context()
self.ctx.check_hostname = Salah
self.ctx.verify_mode = ssl.CERT_NONE
self.info_arr=[]

dengan open('users.txt') sebagai f:
self.content = f.readlines()
self.content = [x.strip() untuk x di self.content]
untuk url di self.content:
diri.getinfo(url)
dengan open('info.json', 'w') sebagai outfile:
json.dump(self.info_arr, outfile, indent=4)
print(“File Json yang berisi info yang diperlukan telah dibuat…………”)

jika __name__ == '__main__':
obj = Insta_Info_Scraper()
obj.main()
[/kode]

Saat Anda menjalankan kode ini, Anda hanya akan melihat satu pernyataan yang dicetak-

[bahasa kode="python"]

H:Python_Algorithmic_ProblemsScraping_assignmentsInstagram-Data-Extractor&gt;python insta_info_scraper_json_format.py
File json yang berisi info yang diperlukan dibuat ………
[/kode]

Namun, pada saat yang sama, file json bernama info.json akan dibuat di folder Anda-

json akan terlihat seperti ini-

[bahasa kode="python"]

[
{
“Pengguna”: “Selena Gomez (@selenagomez)”,
“Pengikut”: “144.1m”,
“Mengikuti”: “49”,
“Postingan”: “1.468”
},
{
“Pengguna”: “Cristiano Ronaldo (@cristiano)”,
“Pengikut”: “143.1m”,
"Mengikuti": "416",
“Postingan”: “2,366”
},
{
“Pengguna”: “Ariana Grande (@arianagrande)”,
“Pengikut”: “130.5m”,
“Mengikuti”: “1.348”,
“Postingan”: “3.669”
},
{
“Pengguna”: “Taylor Swift (@taylorswift)”,
“Pengikut”: “112.1m”,
“Mengikuti”: “0”,
“Postingan”: “233”
},
{
“Pengguna”: “ud83dudc7b neymarjr (@neymarjr)”,
“Pengikut”: “103,4m”,
"Mengikuti": "817",
“Postingan”: “4.263”
},
{
“Pengguna”: “Justin Bieber (@justinbieber)”,
“Pengikut”: “102,5m”,
"Mengikuti": "92",
“Postingan”: “4.367”
}
[/kode]

Anda dapat melihat bahwa datanya sama, tetapi dalam format yang lebih mudah dikelola dan digunakan. Semua yang kami lakukan adalah menyimpan data yang diekstraksi dalam format yang berbeda. Tapi bayangkan jika Anda sedang menulis program, atau membuat aplikasi, yang akan menggunakan data yang diekstraksi dari seribu profil Instagram, jenis struktur data apa yang akan lebih mudah digunakan dalam kode Anda? File json, atau file teks? Pembersihan data adalah sesuatu yang sering diabaikan, tetapi merupakan langkah yang sangat penting. Faktanya, banyak ilmuwan data telah mengakui bahwa meskipun mereka bekerja pada model dan simulasi yang kompleks, ekstraksi data, pembersihan, dan penataan ulang membuat hampir tujuh puluh persen pekerjaan mereka. Nah, kamu pasti sudah mempelajari secara detail cara mengikis data Instagram.

Mengekstrak Tautan Gambar untuk Tagar yang Diberikan

Daripada info dari akun seleb, gambar adalah sumber utama Instagram. Dan cara apa yang lebih baik adalah mendapatkan gambar untuk membentuk cluster dan membangun model pembelajaran mesin, daripada menggunakan tagar Instagram dan mengunduh gambar yang memiliki tagar tertentu.

Berikut adalah kode yang telah diberikan di bawah ini-

[bahasa kode="python"]

#!/usr/bin/python
# -*- koding: utf-8 -*-
permintaan impor
impor urllib.request
impor urllib.parse
impor urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json

kelas Insta_Image_Links_Scraper:

def getlinks (self, hashtag, url):

html = urllib.request.urlopen(url, context=self.ctx).read()
sup = BeautifulSoup(html, 'html.parser')
script = soup.find('script', text=lambda t:
t.startswith('window._sharedData'))
page_json = script.text.split(' = ', 1)[1].rstrip(';')
data = json.loads(page_json)
print ('Mengikis tautan dengan #' + hashtag+”………..”)
untuk posting di data['entry_data']['TagPage'][0]['graphql'
]['hashtag']['edge_hashtag_to_media']['tepi']:
image_src = posting['node']['thumbnail_resources'][1]['src']
hs = buka(tagar + '.txt', 'a')
hs.write(image_src + 'n')
hs.tutup()

def utama (sendiri):
self.ctx = ssl.create_default_context()
self.ctx.check_hostname = Salah
self.ctx.verify_mode = ssl.CERT_NONE

dengan open('hashtag_list.txt') sebagai f:
self.content = f.readlines()
self.content = [x.strip() untuk x di self.content]
untuk hashtag di self.content:
diri.getlinks(tagar,
'https://www.instagram.com/explore/tags/'
+ tagar + '/')

jika __name__ == '__main__':
obj = Insta_Image_Links_Scraper()
obj.main()
[/kode]

Untuk program, kami menggunakan file teks dari beberapa tagar, yaitu mustang, alam, nike, sepak bola dan fifa, beberapa kata dipilih secara acak. Anda dapat mengubah kata dalam file teks atau menambahkan beberapa kata baru, dan kata tersebut akan digunakan untuk membentuk tagar, dan tautan gambar untuk kata tersebut juga akan diunduh.

Saat Anda menjalankan program yang diberikan, inilah yang akan Anda lihat di command prompt-

[bahasa kode="python"]
H:Python_Algorithmic_ProblemsScraping_assignmentsInstagram-Data-Extractor&gt;python insta_image_link_scraper.py
Mengikis tautan dengan #mustang………..
Menggores tautan dengan #nature………..
Mengikis tautan dengan #nike………..
Menggores tautan dengan #sepakbola………..
Mengikis tautan dengan #fifa………..
[/kode]

Pada saat yang sama, Anda akan melihat 5 file yang dibuat di folder Anda saat ini-

Mustang.txt, nature.txt, nike.txt, football.txt, fifa.txt

Saya belum mengunggah tautan untuk file-file ini yang dibuat untuk saya, karena alasan keamanan, dan tentu saja, ketika Anda menjalankan program, Anda akan mendapatkan kumpulan tautan yang berbeda - tautan terbaru yang terkait dengan tagar. Nah, kamu pasti sudah mempelajari secara detail cara mengikis data Instagram.

Mengapa Berusaha?

Sekarang Anda mungkin berpikir, mengapa berusaha, mengapa tidak mengunduh beberapa gambar saja dari google, kapan pun saya perlu. Yah, itu tergantung pada apa yang ingin Anda capai. Jika Anda membutuhkan beberapa gambar untuk artikel Anda, Anda dapat menggunakan gambar google. Tetapi jika Anda mencoba untuk mendapatkan semua gambar yang terkait dengan suatu peristiwa, atau seseorang, atau sesuatu yang lain, Anda dapat mencoba menggunakan tagar untuk mendapatkan gambar dari Instagram. Dengan cara ini Anda akan mendapatkan sekumpulan besar gambar, dari mana Anda dapat menulis program untuk menghapus gambar yang sama dan serupa, dan kemudian memisahkan gambar dengan teks dan gambar tanpa teks dan kemudian menggunakan kedua jenis gambar dengan tepat untuk analisis Anda.

Dimulai dengan SURF dan SIFT (dua algoritma pemrosesan gambar terbaik), pengenalan gambar dan teknik pemrosesan gambar telah berkembang selama beberapa tahun terakhir. Mobil yang melaju kencang, hingga kamera penginderaan gerak semuanya menggunakan gambar untuk membuat kesimpulan. Dengan persediaan gambar Instagram yang hampir tak terbatas, proyek penelitian Anda bisa berjalan jauh. Nah, kamu pasti sudah mempelajari secara detail cara mengikis data Instagram.

Bagaimana Mengintegrasikan Sistem Scraping Dengan Bisnis Anda?

Mengikis data dari situs web seperti Instagram, sesuai kebutuhan Anda mungkin akan menjadi tugas yang melelahkan dan dapat mengalihkan pikiran Anda dari banyak hal penting seperti bisnis Anda. Tanpa pengembang R dan Python yang berpengalaman, Anda mungkin perlu berbulan-bulan untuk membangun sistem lengkap yang akan memberi Anda data dari Instagram sesuai kebutuhan Anda, karena situs web memiliki keamanan tinggi, dan terus mengubah tata letaknya. Untuk solusi lengkap, Anda sebaiknya menghubungi tim web scraping yang berpengalaman seperti PromptCloud. Yang perlu Anda lakukan adalah memberi kami kebutuhan Anda dan Anda akan diberikan data dalam format yang sesuai dengan bisnis Anda. Ini menghemat waktu, energi, uang, dan tenaga Anda, dan membuat Anda menghadapi tantangan bisnis yang lebih sulit sementara kami mengkhawatirkan teknologinya. Nah, kamu pasti sudah mempelajari secara detail cara mengikis data Instagram.

Perlu Bantuan dengan Mengekstrak Data Web?

Dapatkan data bersih dan siap pakai dari situs web untuk aplikasi bisnis melalui layanan pengikisan web kami.

Penafian: Kode yang disediakan dalam tutorial ini hanya untuk tujuan pembelajaran. Kami tidak bertanggung jawab atas cara penggunaannya dan tidak bertanggung jawab atas penggunaan kode sumber yang merugikan.