Cina Sederhana |
Ekstraksi tautan Xiaohongshu/alat pengumpulan karya : ekstrak postingan akun, koleksi, suka, dan tautan karya album; ekstrak tautan karya hasil pencarian dan tautan pengguna; ekstrak alamat unduhan karya Xiaohongshu;
Proyek ini sepenuhnya gratis dan open source, tanpa fungsi berbayar apa pun, mohon jangan tertipu!
Rencana pengembangan dan kemajuan XHS-Downloader dapat ditemukan di Proyek
? Klik pada gambar untuk menonton video demo
https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX
https://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXX
https://xhslink.com/分享码
Mendukung memasukkan beberapa tautan kerja sekaligus, menggunakan spasi untuk memisahkan tautan; program akan secara otomatis mengekstrak tautan yang valid tanpa pemrosesan tambahan!
Disarankan untuk menggunakan Terminal Windows (terminal default Windows 11) untuk menjalankan program untuk efek tampilan terbaik!
Jika Anda hanya perlu mengunduh file kerja tanpa tanda air, disarankan untuk memilih program yang sedang berjalan atau Docker yang sedang berjalan ; jika Anda memiliki kebutuhan lain, disarankan untuk memilih kode sumber yang sedang berjalan !
Mulai dari versi 2.2
, jika tidak ada kelainan pada fungsi proyek, tidak perlu memproses cookie tambahan!
Pengguna Mac OS, Windows 10 dan yang lebih baru dapat membuka Rilis untuk mengunduh paket terkompresi program, mengekstraknya, membuka folder program, dan klik dua kali untuk menjalankan main
untuk menggunakannya.
Catatan: File main
yang dapat dieksekusi pada platform Mac OS mungkin perlu dimulai dari baris perintah terminal; karena keterbatasan perangkat, file yang dapat dieksekusi pada platform Mac OS belum diuji dan ketersediaannya tidak dapat dijamin!
Jika Anda menggunakan program dengan cara ini, jalur pengunduhan file default adalah: ._internalDownload
; jalur file konfigurasi adalah: ._internalsettings.json
Dockerfile
untuk membuat imagedocker pull joeanamier/xhs-downloader
untuk menarik gambardocker run -it joeanamier/xhs-downloader
docker run -it joeanamier/xhs-downloader python main.py server
docker start -i 容器名称/容器ID
docker restart -i 容器名称/容器ID
Docker tidak mendukung mode panggilan baris perintah saat menjalankan proyek. Fungsi membaca clipboard dan memantau clipboard tidak dapat digunakan. Konten dapat ditempel secara normal.
3.12
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
untuk menginstal modul yang diperlukan oleh programmain.py
untuk digunakanProyek ini mendukung mode operasi baris perintah. Jika Anda ingin mengunduh beberapa gambar karya grafis, Anda dapat menggunakan mode ini untuk mengatur nomor seri gambar yang akan diunduh!
Anda dapat menggunakan baris perintah untuk membaca cookie dari browser dan menulis ke file konfigurasi!
Contoh perintah: python .main.py --browser_cookie Chrome --update_settings
Parameter tipe bool
mendukung pengaturan menggunakan true
, false
, 1
, 0
, yes
, no
, on
atau off
(tidak peka huruf besar-kecil).
Mulai: Jalankan perintah: python .main.py server
Shutdown: Tekan Ctrl
+ C
untuk mematikan server
Antarmuka permintaan: /xhs/
Metode permintaan: POST
Format permintaan: JSON
Parameter permintaan:
parameter | jenis | arti | nilai bawaan |
---|---|---|---|
url | str | Tautan ke karya Xiaohongshu diekstraksi secara otomatis dan banyak tautan tidak didukung. | tidak ada |
unduh | bodoh | Apakah akan mengunduh file kerja; menyetelnya ke true akan membutuhkan lebih banyak waktu | PALSU |
indeks | daftar[int] | Mengunduh file gambar dengan nomor seri yang ditentukan hanya efektif untuk karya grafis; tidak berlaku jika parameter download disetel ke false | batal |
melewati | bodoh | Apakah akan melewatkan karya dengan catatan unduhan; menyetelnya ke true tidak akan mengembalikan data untuk karya dengan catatan unduhan | PALSU |
Contoh kode:
def api_demo(): server = "http://127.0.0.1:8000/xhs/" data = { "url": "https://www.xiaohongshu.com/explore/123456789", "unduh": Benar, "indeks": [ 3, 6, 9, ], } respon = permintaan.posting(server, json=data) cetak(respons.json())
Jika browser Anda memasang ekstensi browser Tampermonkey, Anda dapat menambahkan skrip pengguna dan merasakan fitur proyek tanpa mengunduh dan menginstal!
Setelah skrip berhasil diinstal, buka halaman Xiaohongshu, lihat instruksi skrip, dan ikuti petunjuknya.
Tip: Gunakan skrip pengguna XHS-Downloader untuk mengekstrak tautan kerja secara berkelompok, dan gunakan program XHS-Downloader untuk mengunduh banyak file kerja tanpa tanda air!
Jika Anda memiliki kebutuhan lain, Anda dapat memanggil atau memodifikasi kode sesuai dengan petunjuk komentar di main.py
!
contoh def async(): """Tetapkan parameter melalui kode, sesuai untuk pengembangan sekunder""" # Contoh tautan error_link = "https://github.com/JoeanAmier/XHS_Downloader" demo_link = "https://www.xiaohongshu.com/explore/xxxxxxxxxx" multiple_links = f"{demo_link} {demo_link} {demo_link}" # Objek instance work_path = "D:\" # Jalur root untuk menyimpan data/file pekerjaan, nilai default: jalur root proyek folder_name = "Unduh" # Nama folder penyimpanan file pekerjaan (dibuat secara otomatis), nilai default: Unduh name_format = "Judul Karya Deskripsi Karya" user_agent = "" # Agen-Pengguna cookie = "" # Cookie versi web Xiaohongshu, tidak perlu login, parameter opsional, status login berdampak pada pengumpulan data proxy = Tidak ada # Batas waktu proxy jaringan = 5 # Batas waktu tunggu data permintaan, satuan: detik, nilai default: 10 chunk = 1024 * 1024 * 10 # Saat mengunduh file, ukuran blok data yang diperoleh dari server setiap kali, satuan: byte max_retry = 2 # Saat meminta data gagal, jumlah percobaan ulang maksimum, satuan: detik, nilai default : 5 record_data = False # Apakah akan menyimpan data pekerjaan ke file image_format = "WEBP" # Format download file pekerjaan grafis dan teks, mendukung: PNG, WEBP folder_mode = False # Apakah akan menyimpan file setiap pekerjaan di folder terpisah # async dengan XHS() sebagai xhs: # pass # Gunakan parameter default async dengan XHS( jalur_kerja=jalur_kerja, nama_folder=nama_folder, format_nama=format_nama, agen_pengguna=agen_pengguna, kue=kue, proksi=proksi, batas waktu = batas waktu habis, potongan=potongan, max_retry=max_recoba, catatan_data=catatan_data, format_gambar=format_gambar, folder_mode=mode_folder, ) sebagai xhs: # Gunakan parameter khusus unduh = Benar # Apakah akan mengunduh file kerja, nilai default: Salah # Kembalikan informasi rinci tentang pekerjaan, termasuk alamat unduhan # Kembalikan kamus kosong ketika memperoleh data gagal dicetak (tunggu xhs.extract (error_link, unduh, )) print(tunggu xhs.extract(demo_link, unduh, indeks=[1, 2])) # Dukungan meneruskan beberapa tautan kerja cetak (tunggu xhs.extract (multiple_links, unduh, ))
Proyek ini menggunakan pyperclip
untuk mengimplementasikan fungsi membaca clipboard. Modul ini akan bervariasi pada sistem yang berbeda.
Di Windows, tidak diperlukan modul tambahan.
Di Mac, modul ini menggunakan perintah pbcopy dan pbpaste, yang harus disediakan bersama sistem operasi.
Di Linux, modul ini menggunakan perintah xclip atau xsel, yang harus dikirimkan bersama sistem operasi. Jika tidak, jalankan "sudo apt-get install xclip" atau "sudo apt-get install xsel" (catatan: xsel sepertinya tidak selalu berfungsi)
Di sistem Linux lain, Anda perlu menginstal modul qtpy atau PyQT5.
File settings.json
di direktori root proyek dibuat secara otomatis saat dijalankan untuk pertama kalinya, dan beberapa parameter yang berjalan dapat disesuaikan.
Jika nilai parameter yang ditetapkan tidak valid, program akan menggunakan nilai default parameter!
parameter | jenis | arti | nilai bawaan |
---|---|---|---|
jalur_kerja | str | Jalur root penyimpanan data/file kerja | Jalur akar proyek |
nama_folder | str | Nama folder tempat file pekerjaan disimpan | Unduh |
nama_format | str | Format nama file karya, gunakan spasi untuk memisahkan bidang yang didukung:收藏数量 ,评论数量 ,分享数量 点赞数量 ,作品标签 ,作品ID ,作品标题 karya,作品描述 karya,作品类型 ,发布时间 ,最后更新时间 ,作者昵称 ,作者ID | 发布时间作者昵称作品标题 |
agen_pengguna | str | Agen Pengguna Peramban | Agen Pengguna Chrome bawaan |
kue | str | Cookie versi web Xiaohongshu, tidak perlu login, tidak perlu parameter! | tidak ada |
proksi | str | Atur proksi program | batal |
batas waktu | ke dalam | Batas waktu tunggu data permintaan, satuan: detik | 10 |
bingkah | ke dalam | Saat mengunduh file, ukuran blok data yang diperoleh dari server setiap kali, satuannya: byte | 2097152(2 MB) |
max_retry | ke dalam | Saat permintaan data gagal, jumlah percobaan ulang maksimum, satuan: detik | 5 |
catatan_data | bodoh | Apakah akan menyimpan data pekerjaan ke file, format penyimpanan: SQLite | PALSU |
format_gambar | str | Format pengunduhan file kerja grafis dan teks, mendukung: PNG , WEBP Parameter ini memengaruhi antarmuka yang digunakan saat mengunduh gambar, dan bukan merupakan format gambar tetap! | PNG |
gambar_unduh | bodoh | Sakelar pengunduhan file kerja grafis | BENAR |
video_unduh | bodoh | Sakelar pengunduhan file kerja video | BENAR |
unduh_langsung | bodoh | Sakelar pengunduhan file grafis, teks, dan animasi | PALSU |
folder_mode | bodoh | Apakah akan menyimpan file setiap karya dalam folder terpisah; nama folder harus sesuai dengan nama file | PALSU |
unduh_catatan | bodoh | Apakah akan mencatat ID karya yang berhasil diunduh. Jika diaktifkan, program secara otomatis akan melewatkan pengunduhan karya dengan catatan yang ada. | BENAR |
bahasa | str | Atur bahasa program, yang saat ini didukung: zh_CN , en_GB | zh_CN |
Petunjuk lainnya: Contoh mendapatkan parameter user_agent
; sangat disarankan untuk mengaturnya sesuai dengan informasi browser yang sebenarnya!
Mulai dari versi 2.2
, jika tidak ada kelainan pada fungsi proyek, tidak perlu memproses cookie tambahan!
https://www.xiaohongshu.com/explore
F12
untuk membuka alat pengembang网络
保留日志
cookie-name:web_session
di kotak input过滤
Fetch/XHR
网络
(jika tidak ada paket, ulangi langkah 7)XHS-Downloader akan menyimpan ID karya yang diunduh di database. Saat mengunduh karya yang sama berulang kali, XHS-Downloader akan secara otomatis melewatkan pengunduhan file karya tersebut (walaupun file karya tersebut tidak ada). -unduh file pekerjaan, Harap hapus ID pekerjaan yang sesuai di database terlebih dahulu, lalu gunakan XHS-Downloader untuk mengunduh file pekerjaan!
Fungsi ini diaktifkan secara default. Jika dinonaktifkan, XHS-Downloader akan memeriksa apakah file tersebut ada dan melewatkan pengunduhan jika file tersebut ada!
Jika XHS-Downloader bermanfaat bagi Anda, mohon pertimbangkan untuk memberikannya bintang . Terima kasih atas dukungan Anda!
Wechat wechat | Alipay |
---|---|
Jika Anda mau, pertimbangkan untuk mendanai dukungan tambahan untuk XHS-Downloader !
Catatan: Obrolan grup QQ terbatas untuk membahas masalah penggunaan proyek. Dilarang keras mempublikasikan iklan apa pun, dan dilarang keras mendiskusikan transaksi akun, lalu lintas akun, monetisasi lalu lintas, industri abu-abu, dan konten terkait lainnya!
Proyek sumber terbuka penulis lainnya:
JetBrains mendukung proyek aktif yang diakui oleh komunitas open source global dan memberikan lisensi gratis untuk pengembangan non-komersial.