


Teknik mengikis web asas menggunakan permintaan python dan cantik
Jul 05, 2025 am 02:57 AMKaedah asas menggunakan Python untuk merangkak web adalah untuk menggabungkan permintaan dan indah, mula -mula menghantar permintaan untuk mendapatkan HTML, dan kemudian menghuraikan dan mengekstrak data. 1. Selepas memasang perpustakaan, gunakan permintaan.get () untuk mendapatkan kandungan laman web dan mengendalikan pengecualian; 2. BeautifulSoup Parses HTML, mencari elemen melalui find_all (), nama kelas, id, dan lain -lain dan mengekstrak teks atau pautan; 3. Tetapkan tajuk untuk mensimulasikan akses penyemak imbas, dan menambah kelewatan untuk mengelakkan mencetuskan mekanisme anti-keriting.
Secara langsung jawab Soalan Tajuk: Menggunakan Python untuk Crawling Web, kaedah yang paling asas dan umum adalah untuk menggabungkan dua perpustakaan: permintaan dan indah. Mereka mudah dan praktikal untuk digunakan bersama, dan sesuai untuk pengekstrakan data halaman paling statik.

1. Pemasangan dan prosedur asas
Untuk memulakan perjumpaan web, anda mesti memasang perpustakaan yang diperlukan:

PIP Pasang Permintaan Cantik4
Seluruh proses kira -kira dibahagikan kepada tiga langkah:
- Gunakan
requests
untuk menghantar permintaan untuk mendapatkan kandungan laman web (HTML) - Menghuraikan html dengan
BeautifulSoup
- Ekstrak data yang diperlukan, seperti tajuk, perenggan atau pautan
Perkara yang paling penting dalam langkah ini adalah untuk memastikan bahawa kandungan halaman dapat diperoleh secara normal. Kadang -kadang ia akan gagal kerana sekatan pelayan atau masalah rangkaian, jadi disyorkan untuk menambah pengecualian, seperti:

permintaan import url = 'https://example.com' Cuba: respons = requests.get (url) response.raise_for_status () # Jika kod status tidak 200, pengecualian akan dilemparkan kecuali permintaan.RequestException sebagai e: cetak (f "permintaan gagal: {e}")
2. Cara mencari dan mengekstrak data
Selepas mendapat kandungan HTML, langkah seterusnya adalah untuk menghuraikan struktur. Anda boleh menggunakan BeautifulSoup
untuk mencari tag, nama kelas, atau ID.
Amalan Biasa:
- Cari semua nod kanak -kanak di bawah tag:
.find_all()
- Elemen penapis mengikut Nama Kelas:
soup.find_all('div', class_='your-class')
- Ekstrak kandungan teks:
.get_text()
- Dapatkan alamat pautan:
.get('href')
Sebagai contoh, saya ingin mengekstrak semua tajuk dan pautan dalam halaman senarai berita:
dari bs4 import cantikSoup sup = indahSoup (response.text, 'html.parser') untuk item dalam sup.find_all ('h2', kelas _ = 'post-title'): tajuk = item.get_text () pautan = item.find ('a') ['href'] Cetak (Tajuk, Pautan)
Harus diingat di sini bahawa struktur HTML laman web yang berbeza sangat berbeza. Adalah lebih baik untuk memeriksa kod sumber web secara manual untuk mengesahkan struktur, dan jangan buta menulis pemilih.
3. Elakkan disekat atau mencetuskan mekanisme anti-keriting
Walaupun ini hanyalah teknik merangkak asas, masalah anti-crawler tidak boleh diabaikan sepenuhnya. Banyak laman web akan bertindak balas terhadap permintaan yang kerap, seperti kod pengesahan yang kembali, menyekat IP, dll.
Beberapa cadangan yang mudah tetapi berkesan:
Tambahkan
headers
untuk mensimulasikan akses penyemak imbas:tajuk = { 'Agen Pengguna': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (khtml, seperti gecko) Chrome/91.0.4472.124 Safari/537.36' } Response = Requests.get (URL, Headers = Headers)
Tambahkan kelewatan rawak antara permintaan untuk mengelakkan akses berterusan terlalu cepat:
masa import Import secara rawak time.sleep (random.uniform (1, 3))
Jangan hantar terlalu banyak permintaan, terutamanya semasa fasa ujian, menjaga lebih selamat dan perlahan.
Langkah-langkah ini tidak boleh 100% anti-pend-, tetapi mereka cukup dalam senario merangkak asas.
Pada dasarnya itu sahaja. Walaupun gabungan permintaan yang indah adalah mudah, adalah baik untuk menangani kebanyakan halaman statik. Tidak ada keperluan untuk logik yang terlalu kompleks, kunci adalah biasa dengan struktur HTML dan penulisan pemilih CSS.
Atas ialah kandungan terperinci Teknik mengikis web asas menggunakan permintaan python dan cantik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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)

Kunci untuk menangani pengesahan API adalah untuk memahami dan menggunakan kaedah pengesahan dengan betul. 1. Apikey adalah kaedah pengesahan yang paling mudah, biasanya diletakkan dalam tajuk permintaan atau parameter URL; 2. BasicAuth menggunakan nama pengguna dan kata laluan untuk penghantaran pengekodan Base64, yang sesuai untuk sistem dalaman; 3. OAuth2 perlu mendapatkan token terlebih dahulu melalui client_id dan client_secret, dan kemudian bawa bearertoken dalam header permintaan; 4. Untuk menangani tamat tempoh token, kelas pengurusan token boleh dikemas dan secara automatik menyegarkan token; Singkatnya, memilih kaedah yang sesuai mengikut dokumen dan menyimpan maklumat utama adalah kunci.

Menegaskan adalah alat pernyataan yang digunakan dalam Python untuk menyahpepijat, dan melemparkan pernyataan apabila keadaan tidak dipenuhi. Sintaksnya adalah menegaskan keadaan ditambah maklumat ralat pilihan, yang sesuai untuk pengesahan logik dalaman seperti pemeriksaan parameter, pengesahan status, dan lain -lain, tetapi tidak boleh digunakan untuk pemeriksaan input keselamatan atau pengguna, dan harus digunakan bersamaan dengan maklumat yang jelas. Ia hanya tersedia untuk debugging tambahan dalam peringkat pembangunan dan bukannya menggantikan pengendalian pengecualian.

Kaedah yang sama untuk melintasi dua senarai secara serentak dalam Python adalah menggunakan fungsi zip (), yang akan memasangkan beberapa senarai dalam rangka dan menjadi yang paling singkat; Jika panjang senarai tidak konsisten, anda boleh menggunakan itertools.zip_longest () untuk menjadi yang paling lama dan mengisi nilai yang hilang; Digabungkan dengan penghitungan (), anda boleh mendapatkan indeks pada masa yang sama. 1.Zip () adalah ringkas dan praktikal, sesuai untuk lelaran data berpasangan; 2.zip_longest () boleh mengisi nilai lalai apabila berurusan dengan panjang yang tidak konsisten; 3.enumerate (zip ()) boleh mendapatkan indeks semasa traversal, memenuhi keperluan pelbagai senario kompleks.

TypehintsinpythonsolvetheproblemofambiguityandpotentialbugsindynamiciallytypodeByallowingDeveloperStospecifyExpectedTypes.theyenhancereadability, enablearlybugdetection, andimprovetoLiaSareAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeSareadDeSareadDeSareadDeSareadDeSaread

Inpython, iteratorsareObjectsThatallowLoopingthroughCollectionsByImplementing__iter __ () dan__Next __ ()

Untuk mewujudkan API moden dan cekap menggunakan Python, FastAPI disyorkan; Ia berdasarkan kepada jenis python standard yang diminta dan secara automatik dapat menghasilkan dokumen, dengan prestasi yang sangat baik. Selepas memasang FastAPI dan Asgi Server UVicorn, anda boleh menulis kod antara muka. Dengan menentukan laluan, menulis fungsi pemprosesan, dan data yang kembali, API boleh dibina dengan cepat. FastAPI menyokong pelbagai kaedah HTTP dan menyediakan sistem dokumentasi Swaggersui dan Redoc yang dihasilkan secara automatik. Parameter URL boleh ditangkap melalui definisi laluan, manakala parameter pertanyaan boleh dilaksanakan dengan menetapkan nilai lalai untuk parameter fungsi. Penggunaan rasional model Pydantic dapat membantu meningkatkan kecekapan dan ketepatan pembangunan.

Untuk menguji API, anda perlu menggunakan Perpustakaan Permintaan Python. Langkah -langkahnya adalah untuk memasang perpustakaan, menghantar permintaan, mengesahkan respons, menetapkan masa dan cuba semula. Pertama, pasang perpustakaan melalui PipinstallRequests; kemudian gunakan permintaan.get () atau requests.post () dan kaedah lain untuk menghantar permintaan GET atau pos; Kemudian semak respons.status_code dan response.json () untuk memastikan hasil pulangan mematuhi jangkaan; Akhirnya, tambah parameter tamat masa untuk menetapkan masa tamat, dan menggabungkan perpustakaan semula untuk mencapai percubaan automatik untuk meningkatkan kestabilan.

Dalam Python, pembolehubah yang ditakrifkan di dalam fungsi adalah pembolehubah tempatan dan hanya sah dalam fungsi; Ditakrifkan secara luaran adalah pembolehubah global yang boleh dibaca di mana sahaja. 1. Pembolehubah tempatan dimusnahkan kerana fungsi dilaksanakan; 2. Fungsi ini boleh mengakses pembolehubah global tetapi tidak dapat diubahsuai secara langsung, jadi kata kunci global diperlukan; 3. Jika anda ingin mengubah suai pembolehubah fungsi luar dalam fungsi bersarang, anda perlu menggunakan kata kunci nonlocal; 4. Pembolehubah dengan nama yang sama tidak mempengaruhi satu sama lain dalam skop yang berbeza; 5. Global mesti diisytiharkan apabila mengubah suai pembolehubah global, jika tidak, kesilapan unboundlocalerror akan dibangkitkan. Memahami peraturan ini membantu mengelakkan pepijat dan menulis lebih banyak fungsi yang boleh dipercayai.
