Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penggunaan praktikal perangkak dalam Python: perangkak Zhihu

Penggunaan praktikal perangkak dalam Python: perangkak Zhihu

WBOY
WBOYasal
2023-06-10 16:24:071128semak imbas

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.

  1. kaedah find_all: Mengembalikan senarai semua nod yang sepadan dengan syarat yang ditentukan. Contohnya, kod berikut mengembalikan semua "soalan" pada halaman utama pengguna:
questions = soup.find_all('a', {'data-nav':'question'})
for question in questions:
    print(question.text)
  1. kaedah cari: Mengembalikan nod pertama yang memenuhi syarat yang ditetapkan.
name = soup.find('span', {'class': 'ProfileHeader-name'}).text
  1. kaedah pilih: Gunakan pemilih CSS untuk mencari.
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn