


Analisis kod contoh pengenalan teknologi crawler Python
Konsep asas teknologi perangkak
Perangkak: program yang memperoleh data rangkaian secara automatik.
Struktur halaman web: HTML, CSS, JavaScript, dsb.
Permintaan HTTP: Cara pelanggan meminta data daripada pelayan.
Respons HTTP: Data yang dikembalikan oleh pelayan kepada klien.
Permintaan dan Respons
Gunakan perpustakaan permintaan Python untuk menghantar permintaan HTTP.
import requests url = "https://www.example.com" response = requests.get(url)
Dapatkan kandungan respons
html_content = response.text
Penghuraian HTML dan pengekstrakan data
Gunakan perpustakaan BeautifulSoup untuk menghuraikan kandungan HTML.
from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, "html.parser")
Gunakan pemilih CSS atau kaedah lain untuk mengekstrak data.
title = soup.title.string
Pertempuran praktikal: Rangka maklumat artikel di halaman utama laman web Jianshu
Hantar permintaan untuk mendapatkan kandungan HTML halaman utama laman web Jianshu.
import requests from bs4 import BeautifulSoup url = "https://www.jianshu.com" response = requests.get(url) html_content = response.text
Simpan data
Simpan data dalam format JSON.
import json with open("jianshu_articles.json", "w", encoding="utf-8") as f: json.dump(article_info_list, f, ensure_ascii=False, indent=4)
Pengujian dan Pengoptimuman
1 Apabila menghadapi strategi anti-crawler, anda boleh menggunakan User-Agent untuk berpura-pura menjadi penyemak imbas.
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} response = requests.get(url, headers=headers)
2. Gunakan fungsi time.sleep() untuk mengawal kekerapan permintaan.
import time time.sleep(10)
3. Ralat pengendalian dan penangkapan pengecualian.
try: response = requests.get(url, headers=headers, timeout=5) response.raise_for_status() except requests.exceptions.RequestException as e: print(f"Error: {e}")
Kod lengkap untuk perangkak tapak web:
import requests from bs4 import BeautifulSoup import json import time def fetch_jianshu_articles(): url = "https://www.jianshu.com" headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} try: response = requests.get(url, headers=headers, timeout=5) response.raise_for_status() except requests.exceptions.RequestException as e: print(f"Error: {e}") return html_content = response.text soup = BeautifulSoup(html_content, "html.parser") articles = soup.find_all("div", class_="content") article_info_list = [] for article in articles: title = article.h3.text.strip() author = article.find("span", class_="name").text.strip() link = url + article.h3.a["href"] article_info = {"title": title, "author": author, "link": link} article_info_list.append(article_info) return article_info_list def save_to_json(article_info_list, filename): with open(filename, "w", encoding="utf-8") as f: json.dump(article_info_list, f, ensure_ascii=False, indent=4) if __name__ == "__main__": article_info_list = fetch_jianshu_articles() if article_info_list: save_to_json(article_info_list, "jianshu_articles.json") print("Jianshu articles saved to 'jianshu_articles.json'.") else: print("Failed to fetch Jianshu articles.")
Tambahan
Untuk lebih memahami projek praktikal ini, kita perlu memahami beberapa konsep dan prinsip asas, yang akan Membantu menguasai teknologi pengaturcaraan rangkaian dan perangkak Python. Berikut ialah beberapa konsep asas rangkak web:
HTTP Protocol: Hypertext Transfer Protocol (HTTP) ialah protokol lapisan aplikasi yang digunakan untuk menghantar dokumen hipermedia seperti HTML. Protokol HTTP digunakan untuk menghantar atau menghantar data dari pelayan web ke pelayar web atau klien lain.
HTML, CSS dan JavaScript: HTML ialah bahasa yang digunakan untuk menerangkan halaman web. CSS ialah gaya yang digunakan untuk menyatakan struktur HTML. JavaScript ialah bahasa skrip untuk pengaturcaraan web, terutamanya digunakan untuk mencapai kesan dinamik pada halaman web dan berinteraksi dengan pengguna.
DOM: Model Objek Dokumen (DOM) ialah antara muka pengaturcaraan merentas platform untuk memproses dokumen HTML dan XML. DOM menganggap dokumen sebagai struktur pokok, di mana setiap nod mewakili bahagian (seperti elemen, atribut atau teks).
URL: Pencari Sumber Seragam (URL) ialah rentetan aksara yang digunakan untuk menentukan lokasi sumber Internet.
Pengepala Permintaan: Dalam permintaan HTTP, pengepala permintaan mengandungi maklumat tentang persekitaran pelanggan, penyemak imbas, dsb. Medan pengepala permintaan biasa termasuk: Ejen Pengguna, Terima, Perujuk, dsb.
Pengepala Respons: Dalam respons HTTP, pengepala respons mengandungi maklumat tentang pelayan, kod status respons dan maklumat lain. Medan pengepala respons biasa termasuk: Jenis Kandungan, Panjang Kandungan, Pelayan, dsb.
Strategi perangkak web: Sesetengah tapak web akan menggunakan beberapa strategi untuk menghalang perangkak daripada merebut data, seperti: menyekat IP, mengehadkan kelajuan akses, menggunakan JavaScript untuk memuatkan data secara dinamik, dsb. Dalam aplikasi praktikal, kami perlu mengambil langkah balas yang sepadan berdasarkan strategi ini, seperti menggunakan IP proksi, mengehadkan kelajuan merangkak perangkak, menggunakan perpustakaan simulasi penyemak imbas (seperti Selenium), dsb.
Atas ialah kandungan terperinci Analisis kod contoh pengenalan teknologi crawler Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Untuk menjalankan kod python dalam teks luhur, anda perlu memasang plug-in python terlebih dahulu, kemudian buat fail .py dan tulis kod itu, dan akhirnya tekan Ctrl B untuk menjalankan kod, dan output akan dipaparkan dalam konsol.

Kod penulisan dalam Kod Visual Studio (VSCode) adalah mudah dan mudah digunakan. Hanya pasang VSCode, buat projek, pilih bahasa, buat fail, tulis kod, simpan dan jalankannya. Kelebihan vscode termasuk sumber lintas platform, bebas dan terbuka, ciri-ciri yang kuat, sambungan yang kaya, dan ringan dan cepat.

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Running Python Code di Notepad memerlukan Python Executable dan NPPExec plug-in untuk dipasang. Selepas memasang Python dan menambahkan laluannya, konfigurasikan perintah "python" dan parameter "{current_directory} {file_name}" dalam plug-in nppexec untuk menjalankan kod python melalui kunci pintasan "f6" dalam notepad.
