Apakah itu peringkat bahasa pemrograman atau di industri Internet pada tahun 2019, Python selalu menjadi kontroversi, dan apakah itu Java atau Python adalah topik hangat.
Dengan pembaruan berulang dari era informasi dan kebangkitan kecerdasan buatan, bahasa pemrograman Python juga telah dipelajari secara luas oleh orang-orang. Analisis data Python, tumpukan penuh web Python, operasi dan pemeliharaan otomatis Python, dll. Semuanya populer, termasuk crawler Python. . Tetapi orang-orang berpikir bahwa perayapan Python itu ilegal, dan mereka juga bertanya-tanya apakah mereka ingin mempelajari perayapan. Artikel sebelumnya sangat populer, yaitu "Hanya karena saya menulis perayap, lebih dari 200 orang di perusahaan ditangkap! ", artikel tersebut menulis bahwa karena seorang teknisi tertangkap karena merayapi data, apakah perayap benar-benar ilegal? Hari ini kita akan menjelajahinya.
Saat ini, dunia Internet telah menetapkan etika tertentu (Perjanjian robot) untuk crawler melalui perjanjiannya sendiri, tetapi bagian hukumnya masih dibangun dan ditingkatkan. Jadi, apa protokol Robot itu?
Perjanjian Robot
Nama lengkap protokol Robot (protokol perayap) adalah "Protokol Pengecualian Robot". Situs web memberi tahu mesin telusur halaman mana yang dapat dirayapi dan halaman mana yang tidak dapat dirayapi melalui protokol Robot. Perjanjian ini adalah kode moral yang berlaku di komunitas Internet. Meskipun tidak tertulis dalam undang-undang, setiap crawler harus mematuhi perjanjian ini.
Ambil robots.txt dari Taobao sebagai contoh untuk diperkenalkan.
Agen-pengguna: Baiduspider # Mesin perayap Baidu Izinkan: / artikel # Izinkan akses / article.htm, /article/12345.comIzinkan: / oshtml Izinkan: / ershouDisallow: / product / #Forbid access / product / 12345.comDisallow: / # Larang akses ke semua halaman kecuali yang ditentukan oleh Izinkan Agen-Pengguna: Googlebot #Mesin perayap Google Izinkan: / articleAllow: / oshtmlAllow: / product #Allow access to /product.htm, /product/12345.comAllow: / spuAllow: / dianpuAllow: / wenzhangAllow: / overseaDisallow: /Dalam file robot di atas, Taobao menetapkan bahwa agen pengguna adalah mesin perayap milik Baidu.
URL yang diawali dengan nilai item Izinkan diizinkan untuk diakses oleh robot. Misalnya, Izinkan: / artikel mengizinkan mesin perayap Baidu mengakses /article.htm, /article/12345.com, dll.
Tautan yang diawali dengan item Disallow tidak diizinkan untuk diakses oleh mesin perayap Baidu. Misalnya, Disallow: / product / tidak mengizinkan mesin crawler Baidu mengakses /product/12345.com, dll.
Baris terakhir, Disallow: / melarang crawler Baidu mengakses semua halaman kecuali yang ditentukan oleh Allow.
Oleh karena itu, ketika Anda mencari "Taobao" di Baidu, kata-kata kecil di bawah hasil pencarian akan muncul: "Karena file robots.txt dari situs web ini memiliki instruksi yang terbatas (perayapan mesin pencari terbatas), sistem tidak dapat memberikan deskripsi konten halaman ini" , seperti yang ditunjukkan gambar. Sebagai mesin pencari, Baidu sangat mematuhi protokol robot.txt Taobao, jadi Anda tidak dapat mencari informasi produk di dalam Taobao dari Baidu.
Protokol Robot Taobao memperlakukan crawler Google secara berbeda. Tidak seperti crawler Baidu, protokol ini memungkinkan crawler Google untuk meng-crawl halaman produk Izinkan: / product. Oleh karena itu, saat Anda menelusuri "Taobao iphone7" di Google, Anda dapat mencari produk di Taobao, seperti yang ditunjukkan pada gambar.
Saat Anda merayapi data situs web, baik untuk penggunaan pribadi atau tidak, Anda harus mematuhi protokol Robot.
Bergabunglah dengan anggota VIP, ratusan e-book, ribuan kursus menunggu Anda untuk belajar secara gratis
Batasan perayap web
Selain protokol Robot yang disebutkan di atas, kami harus membatasi diri saat menggunakan perayap web: perayap web yang terlalu cepat atau sering akan memberikan tekanan yang luar biasa pada server, dan situs web dapat memblokir IP Anda atau bahkan mengambil tindakan hukum lebih lanjut. Oleh karena itu, Anda perlu membatasi perilaku perayap web dan membatasi kecepatan permintaan ke kisaran yang wajar.
Saat merayapi situs web, Anda perlu membatasi perayap Anda, mematuhi protokol Robot, dan membatasi kecepatan perayap web; Anda harus mematuhi hak kekayaan intelektual situs web tersebut saat menggunakan data.
Jadi, selama Anda menggunakannya secara wajar, Anda tidak akan melanggar hukum. Perayap masih bisa belajar. Lagi pula, perayap sangat berguna untuk analisis data. Jadi, bagaimana Anda belajar? Hari ini saya akan mengajari Anda cara menulis crawler sederhana!
Tulis crawler sederhana pertama
Langkah 1: Dapatkan halaman
#! / usr / bin / python # coding: utf-8 permintaan impor #Introduction package requestlink = " #definition link adalah alamat halaman web target # Tentukan agen browser dari header permintaan, yang disamarkan sebagai header browser = {'User-Agent': 'Mozilla /5.0 (Windows; U; Windows NT 6.1; en-US; rv: 1.9.1.6) Gecko / 20091201 Firefox / 3.5.6 '} r = requests.get (link, headers = headers) #Request webpage print (r.text) # r.text adalah kode konten halaman web yang diperolehKode diatas bisa mendapatkan kode HTML dari homepage blog HTML adalah bahasa yang digunakan untuk mendeskripsikan halaman web, maksudnya dibalik konten yang disajikan pada halaman web tersebut terdapat kode HTML. Jika Anda tidak terbiasa dengan HTML, Anda dapat mengunjungi w3school ( untuk mempelajarinya. Anda dapat mempelajari tentang HTML dalam beberapa jam.
Dalam kode di atas, permintaan impor pertama, impor permintaan paket, lalu dapatkan halaman webnya.
(1) Pertama, tentukan link sebagai alamat halaman web target.
(2) Kemudian gunakan header untuk menentukan proxy browser dari header permintaan yang akan disamarkan
(3) r adalah objek respons permintaan, dari mana kita bisa mendapatkan informasi yang kita inginkan. r. teks adalah kode konten halaman web yang diperoleh.
Hasil dari menjalankan kode di atas ditunjukkan pada gambar.
Langkah 2: Ekstrak data yang diperlukan
#! / usr / bin / python # coding: utf-8 impor permintaan dari bs4 impor BeautifulSoup #import BeautifulSoup dari perpustakaan bs4 link = " = {'User-Agent': 'Mozilla / 5.0 (Windows; U; Windows NT 6.1; en-US; rv: 1.9.1.6) Gecko / 20091201 Firefox /3.5.6 '} r = requests.get (link, headers = headers) soup = BeautifulSoup (r.text, "html.parser") #Gunakan BeautifulSoup untuk mengurai #Cari judul artikel pertama, cari elemen h1 yang kelasnya adalah "post-title", ekstrak a, ekstrak string dalam a, strip untuk menghapus spasi kiri dan kanan title = soup.find ("h1", class _ = "post- title "). a.text.stripprint (judul)Setelah mendapatkan kode HTML dari seluruh halaman, kita perlu mengekstrak judul artikel pertama dari keseluruhan halaman.
Library BeautifulSoup digunakan di sini untuk mengurai halaman. BeautifulSoup akan dijelaskan secara rinci di Bab 4. Pertama, Anda perlu mengimpor pustaka ini, lalu mengonversi kode HTML menjadi objek sup, lalu gunakan soup.find ("h1", class _ = "post-title"). A.text.strip untuk mendapatkan judul artikel pertama, dan mencetaknya keluar
soup.find ("h1", class _ = "post-title"). a.text.strip artinya mencari judul artikel pertama, cari elemen h1 yang kelasnya "post-title", ekstrak elemen a, Ekstrak string di elemen a, lepaskan untuk menghapus ruang kiri dan kanan.
Untuk pemula, lebih mudah menggunakan BeautifulSoup untuk mengekstrak data yang dibutuhkan dari halaman web.
Lantas, bagaimana cara kita menemukan posisi judul secara akurat dari kode yang begitu panjang?
Berikut adalah pengantar besar untuk fungsi "periksa (elemen ulasan)" di browser Chrome. Langkah-langkah untuk menemukan elemen yang diperlukan dijelaskan di bawah ini.
Langkah 01
Gunakan browser Chrome untuk membuka beranda blog www.santostang.com. Klik kanan halaman web dan klik perintah "Periksa" di menu pintasan pop-up, seperti yang ditunjukkan pada gambar.
Langkah 02
Halaman elemen ulasan seperti yang ditunjukkan pada gambar di bawah ini muncul. Klik tombol mouse di pojok kiri atas, lalu klik data yang diinginkan di halaman. Kode yang sesuai akan muncul di Elemen di bawah, dan elemen yang diinginkan akan ditemukan.
Langkah 03
Temukan tempat biru dalam kode, yang merupakan catatan studi echart (2) -beberapa bagan di halaman yang sama. Kita bisa menggunakan soup.find ("h1", class _ = "post-title"). A.text.strip untuk mengekstrak judul postingan blog.
Langkah 3: Simpan data
impor permintaan dari bs4 impor BeautifulSoup #import BeautifulSoup dari perpustakaan bs4 link = " = {'User-Agent': 'Mozilla / 5.0 (Windows; U; Windows NT 6.1; en-US; rv: 1.9.1.6) Gecko / 20091201 Firefox /3.5.6 '} r = requests.get (link, headers = headers) soup = BeautifulSoup (r.text, "html.parser") #Gunakan BeautifulSoup untuk mengurai title = soup.find ("h1", class _ = "post-title"). a.text.stripprint (judul) # Buka txt kosong, lalu gunakan f.write untuk menulis judul string dengan open ('title_test.txt', "a +") sebagai f: f.write (title)File txt yang disimpan secara lokal sangat sederhana. Menambahkan 2 baris kode pada dasar langkah kedua dapat menyimpan string ini dalam teks dan menyimpannya secara lokal. Alamat file txt harus ditempatkan di folder yang sama dengan file Python Anda.
Kembali ke folder dan buka file title.txt, yang isinya ditunjukkan pada gambar.
Di atas adalah cara menulis crawler pertama, sudahkah Anda mempelajarinya? Tidak masalah jika Anda tidak mempelajarinya untuk saat ini, Anda dapat mempelajarinya perlahan ~ Konten di atas berasal dari "perayap web Python dari entri hingga praktik (edisi ke-2)" [Manfaatnya ada di akhir artikel] Gulir ke bawah!
pengantar singkat: Menggunakan Python untuk menulis web crawler untuk mendapatkan data besar di Internet saat ini sedang menjadi topik hangat. Buku ini mencakup tiga bagian: bagian dasar, bagian lanjutan, dan praktik proyek. Bagian dasar (Bab 1 ~ 7) terutama memperkenalkan tiga langkah perayapan mendapatkan halaman web, mengurai halaman web dan menyimpan data, dan melalui penjelasan banyak contoh, sehingga pembaca dapat mempelajari teknologi perayapan dari konten dasar secara sistematis, dan Tingkatkan level crawler Python dalam praktiknya. Bagian lanjutan (Bab 8 ~ 13) mencakup crawler multi-threaded serentak dan paralel, crawler terdistribusi, penggantian IP, dll., Untuk membantu pembaca lebih meningkatkan level crawler. Bagian praktik proyek (Bab 14 ~ 17) menggunakan teknologi perayap yang diperkenalkan dalam buku ini untuk merayapi beberapa situs web yang sebenarnya, sehingga pembaca dapat menulis program perayap sesuai kebutuhan mereka setelah membaca buku ini.
Alasan yang direkomendasikan:
Pengetahuan dasar + modul pengetahuan lengkap + 4 pengajaran kasus praktis, memungkinkan pembaca dengan cepat menguasai penulisan program crawler dan dengan cepat tumbuh menjadi crawler master
Buku-buku di atas telah ditambahkan ke hak dan minat kartu keanggotaan VIP, Makan saja ini Dengan kartu keanggotaan VIP, Anda dapat membaca ratusan e-book gratis, serta ribuan kursus berkualitas tinggi secara gratis, pindai kode untuk melihatnya!
kesejahteraan
Bagaimana cara berpartisipasi: Tinggalkan pesan di artikel ini dan berpartisipasi dalam topik "Dalam buku teknis, apakah Anda memilih untuk membeli buku kertas atau e-book, mengapa?" Anda bisa mendapatkan notebook yang dapat dihapus senilai 129 yuan, hanya 2 tempat ~
Waktu pengumuman penghargaan: 21 Februari, 14:00
- Alipay mengirimkan hampir 10.000 persediaan hidup kepada staf medis garis depan dan menyelamatkan 25 staf medis