Dalam era Internet hari ini, maklumat yang kita perlukan boleh dikatakan merangkumi semua, tetapi cara mendapatkan maklumat ini sering menjadi masalah. Salah satu kaedah yang biasa digunakan ialah mengumpul maklumat melalui perangkak web. Mengenai penulisan perangkak web, bahasa Python selalunya merupakan salah satu alat yang paling popular. Dalam artikel ini, kami akan menerangkan cara menggunakan Python untuk menulis perangkak web berdasarkan Zhihu.
Zhihu ialah tapak web soal jawab sosial yang terkenal, yang sangat penting untuk penyepaduan dan ringkasan maklumat. Kami boleh menggunakan perangkak untuk mendapatkan soalan, jawapan, maklumat pengguna, dsb. di tapak web. Di sini, kami terutamanya memperkenalkan cara mendapatkan maklumat pengguna Zhihu.
Pertama, kita perlu menggunakan perpustakaan biasa perangkak Python - Requests dan BeautifulSoup. Pustaka Permintaan boleh membantu kami mendapatkan kandungan halaman web, dan perpustakaan BeautifulSoup boleh membantu kami menghuraikan kandungan halaman web dan mendapatkan maklumat yang kami perlukan. Kedua-dua perpustakaan ini perlu dipasang sebelum digunakan.
Selepas pemasangan selesai, kami boleh mendapatkan halaman utama pengguna Zhihu dahulu melalui perpustakaan Permintaan, contohnya:
import requests url = 'https://www.zhihu.com/people/zionyang/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) html = response.text
Dalam kod di atas, kami memperoleh pengguna Zhihu melalui kaedah get dalam halaman utama perpustakaan Permintaan" zionyang. Antaranya, parameter pengepala ditambah untuk mengelak daripada dikenali oleh mekanisme anti-crawler.
Selepas mendapatkan kod sumber halaman web, kami boleh menggunakan BeautifulSoup untuk menghuraikan kandungan HTML. Seperti yang ditunjukkan dalam kod berikut:
from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml')
Tetapkan parser kepada "lxml", dan kemudian kita boleh menggunakan fungsi hebat BeautifulSoup untuk menghuraikan dokumen HTML. Di bawah adalah beberapa kaedah penghuraian yang biasa digunakan.
questions = soup.find_all('a', {'data-nav':'question'}) for question in questions: print(question.text)
name = soup.find('span', {'class': 'ProfileHeader-name'}).text
education = soup.select('li.ProfileEducationList-item')[0].select('div.ProfileEducationList-degreeName')[0].text
Melalui kaedah di atas, kita boleh mendapatkan pelbagai kandungan dalam maklumat pengguna Zhihu. Perlu diingat bahawa apabila mengakses halaman utama pengguna tanpa log masuk ke halaman web, kami hanya boleh mendapatkan maklumat asas pengguna, malah kami tidak boleh mendapatkan maklumat peribadi seperti jantina.
Semasa mendapatkan maklumat pengguna, kami juga boleh mendapatkan pengikut, peminat, suka dan data lain pengguna. Kami boleh menggunakan alatan seperti Fiddler untuk menangkap paket untuk mendapatkan URL yang sepadan dengan data yang diperlukan, dan kemudian mengaksesnya melalui perpustakaan Permintaan:
url = 'https://www.zhihu.com/people/zionyang/followers' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Cookie': 'your_cookie' } response = requests.get(url, headers=headers) data = response.json()
Antaranya, maklumat Kuki kami sendiri perlu ditambahkan pada pengepala parameter, jika tidak, kami tidak akan dapat memperoleh data yang diperlukan.
Melalui kaedah di atas, kami boleh menggunakan Python untuk menulis perangkak web kami sendiri dan mendapatkan maklumat yang besar. Sudah tentu, semasa proses merangkak, anda perlu memberi perhatian untuk mematuhi peraturan tapak web yang berkaitan untuk mengelak daripada menjejaskan tapak web Pada masa yang sama, anda juga mesti memberi perhatian kepada perlindungan maklumat peribadi. Saya harap pengenalan dalam artikel ini akan membantu kepada pemula.
Atas ialah kandungan terperinci Penggunaan praktikal perangkak dalam Python: perangkak Zhihu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!