laba-laba weibo
Program ini dapat terus merayapi data satu atau lebih pengguna Sina Weibo (seperti Hu Ge, Dilraba, Guo Biting) dan menulis informasi hasilnya ke dalam file atau database . Informasi tertulis mencakup hampir semua data pengguna weibo, termasuk dua kategori: informasi pengguna dan informasi weibo . Karena terlalu banyak konten, saya tidak akan menjelaskan detailnya di sini. Jika Anda hanya memerlukan informasi pengguna, Anda dapat mengatur fungsi untuk merayapi informasi pengguna Weibo saja. Program ini perlu menyetel cookie untuk mendapatkan akses ke Weibo. Cara mendapatkan cookie akan dijelaskan nanti. Jika Anda tidak ingin menyetel cookie, Anda dapat menggunakan versi bebas cookie, yang memiliki fungsi serupa.
Hasil crawling dapat ditulis ke file dan database. Jenis file tulis spesifiknya adalah sebagai berikut:
- file txt (standar)
- file csv (bawaan)
- file json (opsional)
- Basis data MySQL (opsional)
- Basis data MongoDB (opsional)
- Basis data SQLite (opsional)
Ini juga mendukung pengunduhan gambar dan video dari Weibo. File spesifik yang dapat diunduh adalah sebagai berikut:
- Gambar asli dari Weibo asli (opsional)
- Repost gambar asli dari Weibo (opsional)
- Video asli di Weibo (opsional)
- Repost video di Weibo (opsional)
- Video dalam Weibo Live Photo asli (eksklusif untuk versi bebas cookie)
- Repost video dari Weibo Live Photo (unik untuk versi bebas cookie)
Daftar isi
[Daftar Daftar]
- laba-laba weibo
- Daftar isi
- Bidang yang diperoleh
- Informasi pengguna
- informasi weibo
- Contoh
- Lingkungan pengoperasian
- Petunjuk Penggunaan
- 0.Versi
- 1. Program instalasi
- Instalasi kode sumber
- instalasi pip
- 2. Pengaturan program
- 3. Jalankan programnya
- Program personalisasi (opsional)
- Secara otomatis merayapi Weibo secara teratur (opsional)
- Cara mendapatkan kue
- Cara mendapatkan user_id
- Pertanyaan Umum
- penelitian akademis
- Proyek terkait
- menyumbang
- Penyumbang
- Hal-hal yang perlu diperhatikan
Bidang yang diperoleh
Bagian ini adalah deskripsi informasi bidang yang dirayapi. Untuk membedakannya dari versi bebas cookie, informasi yang dirayapi oleh keduanya tercantum di bawah. Jika informasi tersebut unik untuk versi bebas cookie, informasi tersebut akan ditandai sebagai bebas cookie, dan informasi yang tidak ditandai adalah informasi umum untuk keduanya.
Informasi pengguna
- Id pengguna: ID pengguna Weibo, seperti "1669879400". Sebenarnya, bidang ini adalah bidang yang diketahui.
- Nama Panggilan: Nama panggilan pengguna, seperti "Dear-Dilraba"
- Jenis Kelamin: jenis kelamin pengguna Weibo
- Ulang Tahun: tanggal lahir pengguna
- Lokasi: lokasi pengguna
- Pengalaman belajar: nama dan waktu sekolah saat pengguna bersekolah
- Pengalaman kerja: Nama dan waktu perusahaan pengguna
- Sunshine Credit (versi bebas cookie): Sunshine Credit Pengguna
- Waktu pendaftaran weibo (versi bebas cookie): tanggal pendaftaran weibo pengguna
- Jumlah weibo: Jumlah semua weibo pengguna (Weibo yang di-retweet + weibo asli)
- Jumlah pengikut: jumlah postingan Weibo yang diikuti pengguna
- Jumlah penggemar: jumlah penggemar pengguna
- Pendahuluan: Profil pengguna
- Alamat halaman beranda (versi bebas cookie): URL halaman beranda versi seluler Weibo
- URL Avatar (versi bebas cookie): URL avatar pengguna
- URL avatar definisi tinggi (versi bebas cookie): URL avatar definisi tinggi pengguna
- Tingkat weibo (versi bebas cookie): Tingkat pengguna weibo
- Tingkat keanggotaan (versi bebas cookie): Tingkat pengguna anggota Weibo, tingkat untuk pengguna biasa adalah 0
- Apakah akan mengautentikasi (versi bebas cookie): apakah pengguna diautentikasi, tipe Boolean
- Jenis autentikasi (versi bebas cookie): Jenis autentikasi pengguna, seperti autentikasi pribadi, autentikasi perusahaan, autentikasi pemerintah, dll.
- Informasi otentikasi: unik untuk pengguna yang diautentikasi, informasi otentikasi ditampilkan di kolom informasi pengguna
informasi weibo
- ID weibo: logo unik weibo
- Konten weibo: teks weibo
- Url artikel judul: Url artikel judul di Weibo. Jika tidak ada artikel judul di Weibo, nilainya adalah ''.
- URL gambar asli: Gambar asli Weibo dan URL gambar yang menjadi alasan penerusan Weibo. Jika ada beberapa gambar dalam postingan Weibo, setiap URL dipisahkan dengan koma bahasa Inggris. Tidak ada"
- URL Video: URL video di weibo. Jika tidak ada video di weibo, nilainya adalah "tidak ada"
- Lokasi postingan di weibo: Lokasi postingan di weibo
- Waktu penerbitan weibo: waktu ketika weibo diterbitkan, akurat hingga saat ini
- Jumlah Suka: Jumlah suka di Weibo
- Jumlah retweet: Jumlah retweet di Weibo
- Jumlah komentar: jumlah komentar di Weibo
- Alat penerbitan weibo: alat penerbitan weibo, seperti klien iPhone, Huawei Mate 20 Pro, dll.
- File hasil: Disimpan dalam folder yang diberi nama sesuai nama panggilan pengguna di folder weibo direktori saat ini, dalam bentuk "user_id.csv" dan "user_id.txt"
- Gambar weibo: gambar di weibo asli dan gambar alasan penerusan di weibo disimpan di folder img di bawah folder yang diberi nama sesuai nama panggilan pengguna.
- Video weibo: video asli di weibo, disimpan di folder video di bawah folder yang diberi nama sesuai nama panggilan pengguna
- Tawaran weibo (versi bebas cookie): unik untuk versi bebas cookie, nilainya sama dengan id weibo dalam program ini
- Topik (versi bebas cookie): Topik Weibo, yaitu konten di antara dua #. Jika ada beberapa topik, setiap URL dipisahkan dengan koma bahasa Inggris.
- @user (versi bebas cookie): Weibo @ pengguna, jika ada beberapa @ pengguna, setiap URL dipisahkan dengan koma bahasa Inggris, jika tidak, nilainya adalah ''
- Weibo asli (versi bebas cookie): unik untuk weibo yang diteruskan. Ini adalah weibo yang diteruskan di weibo yang diteruskan. Ini disimpan dalam bentuk kamus dan berisi semua konten informasi weibo di atas, seperti id weibo, konten weibo, dll .
Contoh
Jika Anda ingin mengetahui hasil spesifik yang berjalan dari program ini, Anda dapat melihat contoh dokumen, yang memperkenalkan contoh perayapan Weibo Dilireba dan melampirkan beberapa tangkapan layar dari file hasil.
Lingkungan pengoperasian
- Bahasa pengembangan: python2/python3
- Sistem: Windows/Linux/macOS
Petunjuk Penggunaan
0.Versi
Ada dua versi dari program ini. Versi yang Anda lihat sekarang adalah versi python3, dan versi lainnya adalah versi python2. Saat ini, kami terutama mengembangkan versi python3, termasuk pengembangan fitur baru dan perbaikan bug; versi python2 hanya mendukung perbaikan bug. Disarankan agar pengguna python3 menggunakan versi saat ini, dan pengguna python2 disarankan untuk menggunakan versi python2. Instruksi manual ini untuk versi python3.
1. Program instalasi
Program ini menyediakan dua metode instalasi, satu adalah instalasi kode sumber dan yang lainnya adalah instalasi pip , keduanya memiliki fungsi yang persis sama. Jika Anda perlu mengubah kode sumber, disarankan untuk menggunakan metode pertama, jika tidak, Anda dapat memilih metode instalasi apa pun.
Instalasi kode sumber
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
instalasi pip
$ python3 -m pip install weibo-spider
2. Pengaturan program
Untuk mempelajari tentang pengaturan program, tinjau dokumentasi pengaturan program.
3. Jalankan programnya
Pengguna yang menginstal kode sumber dapat menjalankan perintah berikut di direktori weiboSpider. Pengguna yang menginstal pip dapat menjalankan perintah berikut di direktori mana pun dengan izin menulis.
$ python3 -m weibo_spider
Saat dijalankan untuk pertama kali, file konfigurasi config.json akan secara otomatis dibuat di direktori saat ini. Setelah konfigurasi, jalankan perintah yang sama untuk mendapatkan Weibo.
Jika Anda sudah memiliki file config.json, Anda juga dapat mengkonfigurasi jalur config.json melalui parameter config_path dan menjalankan program.
$ python3 -m weibo_spider --config_path= " config.json "
Jika Anda ingin menentukan jalur penyimpanan file (csv, txt, json, gambar, video), Anda dapat mengaturnya melalui parameter output_dir. Jika Anda ingin menyimpan file ke direktori /home/weibo/, Anda dapat menjalankan perintah berikut:
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
Jika Anda ingin memasukkan user_id melalui baris perintah, Anda dapat menggunakan parameter u. Anda dapat memasukkan satu atau lebih user_id. Setiap user_id dipisahkan dengan koma. Jika ada user_ids duplikat di antara user_ids ini, program akan secara otomatis menghapus duplikat. Baris perintahnya adalah sebagai berikut:
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
Program ini akan mendapatkan pengguna Weibo dengan user_id 1669879400 dan 1223178222. Cara mendapatkan user_id akan kami jelaskan nanti. Semua user_id dalam metode ini disetel menggunakan tanggal_sejak dan tanggal_akhir di config.json, dan rentang waktu perayapan dapat dikontrol dengan mengubah nilainya. Jika user_id_list di config.json adalah jalur file, user_id di setiap baris perintah akan disimpan secara otomatis dalam file dan secara otomatis diperbarui sejak tanggal_, jika bukan jalur, user_id akan disimpan di user_id_list.txt di direktori saat ini; dan diperbarui secara otomatis sejak tanggal_, jika user_id_list.txt tidak ada di direktori saat ini, program akan secara otomatis membuatnya.
Program personalisasi (opsional)
Bagian ini bersifat opsional dan dapat diabaikan jika Anda tidak perlu mempersonalisasi program atau menambahkan fitur baru.
Kode utama program ini terletak di file weibo_spider.py. Bagian utama program adalah kelas Spider. Semua fungsi di atas diimplementasikan dengan memanggil kelas Spider di fungsi utama.
config = get_config ()
wb = Spider ( config )
wb . start () # 爬取微博信息
Pengguna dapat memanggil atau memodifikasi kelas Spider sesuai dengan kebutuhannya. Dengan menjalankan program ini, kita bisa mendapatkan banyak informasi.
Klik untuk melihat detailnya
- wb.user['nickname']: Nama panggilan pengguna;
- wb.pengguna['gender']: jenis kelamin pengguna;
- wb.pengguna['lokasi']: lokasi pengguna;
- wb.user['birthday']: tanggal lahir pengguna;
- wb.user['deskripsi']: Profil pengguna;
- wb.user['verified_reason']: Otentikasi pengguna;
- wb.pengguna['bakat']: label pengguna;
- wb.user['education']: pengalaman belajar pengguna;
- wb.user['work']: pengalaman kerja pengguna;
- wb.pengguna['weibo_num']: Nomor weibo;
- wb.user['following']: jumlah pengikut;
- wb.user['followers']: jumlah penggemar;
wb.weibo : Kecuali untuk informasi di atas, wb.weibo berisi semua informasi weibo yang dirayapi, seperti id weibo , teks weibo , url gambar asli , lokasi penerbitan , waktu penerbitan , alat penerbitan , jumlah suka , jumlah retweet , jumlah komentar , dll. Jika Anda meng-crawl semua weibo (asli + diteruskan), selain informasi di atas, juga menyertakan URL gambar asli dari weibo yang diteruskan , apakah itu weibo asli, dll. wb.weibo adalah daftar yang berisi semua informasi Weibo yang dirayapi. wb.weibo[0] adalah weibo pertama yang dirayapi, wb.weibo[1] adalah weibo kedua yang dirayapi, dan seterusnya. Ketika filter=1, wb.weibo[0] adalah weibo asli pertama yang dirayapi, dan seterusnya. wb.weibo[0]['id'] adalah id dari weibo pertama, wb.weibo[0]['content'] adalah teks dari weibo pertama, wb.weibo[0]['publish_time' ] adalah waktu penerbitan postingan pertama di Weibo, dan masih banyak informasi lain yang tidak akan saya jelaskan secara detail. Anda dapat mengklik "Detail" di bawah untuk melihat penggunaan spesifiknya.
Detail
Jika target pengguna weibo ada di weibo, maka:
- id: menyimpan ID Weibo. Misalnya, wb.weibo[0]['id'] adalah id dari Weibo terbaru;
- konten: menyimpan teks utama Weibo. Misalnya, wb.weibo[0]['content'] adalah teks postingan Weibo terbaru;
- article_url: menyimpan URL artikel utama di Weibo. Misalnya, wb.weibo[0]['article_url'] adalah URL artikel headline terbaru di Weibo. Jika tidak ada artikel headline di Weibo, nilainya adalah '';
- original_pictures: menyimpan URL gambar asli dari weibo asli dan URL gambar sebagai alasan penerusan weibo. Misalnya, wb.weibo[0]['original_pictures'] adalah URL gambar asli dari Weibo terbaru. Jika Weibo memiliki banyak gambar, beberapa URL akan disimpan, dipisahkan dengan koma bahasa Inggris; nilainya adalah "Tidak Ada";
- retweet_pictures: menyimpan URL gambar asli di Weibo yang di-retweet. Jika weibo terbaru adalah weibo asli atau weibo yang diteruskan tanpa gambar, nilainya adalah "tidak ada", jika tidak, itu adalah url gambar dari weibo yang diteruskan. Jika ada beberapa gambar, beberapa URL akan disimpan, dipisahkan dengan koma;
- terbitkan_tempat: menyimpan lokasi penerbitan Weibo. Misalnya, wb.weibo[0]['publish_place'] adalah lokasi penerbitan Weibo terbaru. Jika Weibo tidak memiliki informasi lokasi, nilainya adalah "Tidak Ada";
- terbitkan_waktu: menyimpan waktu penerbitan Weibo. Misalnya, wb.weibo[0]['publish_time'] adalah waktu penerbitan Weibo terbaru;
- up_num: menyimpan jumlah likes yang diperoleh weibo. Misalnya, wb.weibo[0]['up_num'] adalah jumlah suka yang diperoleh postingan Weibo terbaru;
- retweet_num: menyimpan jumlah retweet yang diperoleh Weibo. Misalnya, wb.weibo[0]['retweet_num'] adalah jumlah retweet yang diterima oleh Weibo terbaru;
- comment_num: menyimpan jumlah komentar yang diperoleh Weibo. Misalnya, wb.weibo[0]['comment_num'] adalah jumlah komentar yang diterima oleh Weibo terbaru;
- terbitkan_alat: Alat penerbitan penyimpanan untuk Weibo. Misalnya, wb.weibo[0]['publish_tool'] adalah alat penerbitan untuk Weibo terbaru.
Secara otomatis merayapi Weibo secara teratur (opsional)
Jika Anda ingin program merayapi secara otomatis setiap periode waktu, dan konten yang dirayapi adalah konten yang baru ditambahkan (tidak termasuk Weibo yang telah diperoleh), silakan centang Otomatis merayapi Weibo secara teratur.
Cara mendapatkan kue
Untuk mempelajari cara mendapatkan cookie, lihat dokumentasi cookie.
Cara mendapatkan user_id
Untuk mempelajari cara mendapatkan user_id, silakan lihat dokumen user_id, yang menjelaskan cara mendapatkan user_id dari satu atau lebih pengguna Weibo.
Pertanyaan Umum
Jika terjadi kesalahan saat menjalankan program, Anda dapat melihat halaman FAQ, yang berisi masalah dan solusi paling umum. Jika error yang terjadi tidak terdapat pada FAQ, Anda dapat meminta bantuan dengan mengirimkan permasalahan dan kami dengan senang hati akan menjawabnya untuk Anda.
penelitian akademis
Proyek ini memperoleh data Weibo untuk menyediakan data yang dibutuhkan untuk proyek non-komersial seperti menulis makalah dan melakukan penelitian. Dokumen penelitian akademis adalah proyek yang programnya telah digunakan dalam tesis atau penelitian, dll, dan ditampilkan dengan izin dari pemiliknya. Kami telah berkomunikasi dengan pemilik mengenai beberapa deskripsi terkait privasi, dan deskripsi tersebut hanya memperkenalkan bagian-bagian yang boleh ditampilkan oleh pemilik. Jika pemilik beberapa informasi sebelumnya setuju untuk ditampilkan dan telah menuliskannya di dokumen, tetapi sekarang tidak ingin menampilkannya, Anda dapat memberi tahu saya melalui email ([email protected]) atau terbitan, dan saya akan menghapus yang relevan informasi. Pada saat yang sama, teman-teman yang menggunakan proyek ini untuk menulis makalah atau melakukan penelitian akademis lainnya juga dipersilakan untuk menampilkan hasil penelitiannya dalam dokumen penelitian akademis.
Demi kenyamanan Anda, entri bibtex untuk proyek ini disediakan sebagai berikut:
@misc{weibospider2020,
author = {Lei Chen, Zhengyang Song, schaepher, minami9, bluerthanever, MKSP2015, moqimoqidea, windlively, eggachecat, mtuwei, codermino, duangan1},
title = {{Weibo Spider}},
howpublished = {url{https://github.com/dataabc/weiboSpider}},
year = {2020}
}
Proyek terkait
- weibo-crawler - Fungsinya persis sama dengan proyek ini, Anda tidak dapat menambahkan cookie, dan mendapatkan lebih banyak atribut Weibo;
- pencarian weibo - dapat terus memperoleh satu atau lebih hasil pencarian kata kunci Weibo dan menulis hasilnya ke file (opsional), database (opsional), dll. Yang disebut pencarian kata kunci weibo berarti: mencari weibo yang berisi kata kunci tertentu dalam teks , dan Anda dapat menentukan rentang waktu pencarian. Untuk kata kunci yang sangat populer, lebih dari 10 juta hasil pencarian dapat diperoleh dalam satu hari, dan 10 juta XN hasil pencarian dapat diperoleh dalam N hari. Untuk sebagian besar kata kunci, jumlah mikroblog terkait yang dihasilkan dalam sehari harus kurang dari 10 juta, sehingga dapat dikatakan bahwa program ini dapat memperoleh semua atau hampir semua hasil pencarian untuk sebagian besar kata kunci. Selain itu, program ini dapat memperoleh semua informasi hasil pencarian, dan informasi Weibo yang diperoleh program ini dapat diperoleh oleh program ini.
menyumbang
Selamat datang untuk berkontribusi pada proyek ini. Kontribusi bisa dengan mengirimkan kode, memberikan saran (seperti fitur baru, rencana perbaikan, dll.) melalui masalah, atau memberi tahu kami tentang bug, kekurangan, dll. dalam proyek melalui masalah proyek.
Penyumbang
Terima kasih kepada semua teman-teman yang telah berkontribusi pada proyek ini. Silakan lihat halaman kontributor untuk rincian kontributor.
Hal-hal yang perlu diperhatikan
- User_id tidak boleh menjadi user_id dari crawler Weibo. Karena untuk meng-crawl informasi weibo, Anda harus login terlebih dahulu ke akun weibo. Sebut saja perayap akun ini weibo. Saat crawler Weibo mengunjungi halamannya sendiri dan mengunjungi halaman pengguna lain, format halaman web yang diperoleh berbeda, sehingga tidak dapat meng-crawl informasi Weibo-nya sendiri; jika Anda ingin meng-crawl konten weibo crawler, Anda dapat merujuk ke Mendapatkan Weibo Anda Sendiri Informasi;
- Cookies memiliki tanggal kedaluwarsa terbatas sekitar tiga bulan. Jika muncul pesan bahwa cookie salah atau telah kedaluwarsa, Anda perlu memperbarui cookie lagi.