亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Rumah pembangunan bahagian belakang Tutorial Python Mengikis Halaman Tatal Tak Terhingga dengan Butang &#Load More': Panduan Langkah demi Langkah

Mengikis Halaman Tatal Tak Terhingga dengan Butang &#Load More': Panduan Langkah demi Langkah

Jan 13, 2025 pm 06:09 PM

Adakah pengikis anda tersekat apabila cuba memuatkan data daripada halaman web dinamik? Adakah anda kecewa dengan skrol yang tidak terhingga atau butang "Muatkan lagi" yang menjengkelkan itu?

Anda tidak bersendirian. Banyak tapak web hari ini melaksanakan reka bentuk ini untuk meningkatkan pengalaman pengguna—tetapi tapak web ini boleh mencabar pengikis web.

Tutorial ini akan membimbing anda melalui panduan mesra pemula untuk mengikis halaman tunjuk cara dengan butang Muat Lagi. Begini rupa halaman web sasaran:

Demo web page for scraping

Pada akhirnya, anda akan belajar cara untuk:

  • Sediakan Selenium untuk mengikis web.
  • Automasikan interaksi butang "Muatkan lagi".
  • Ekstrak data produk seperti nama, harga dan pautan.

Jom selami!

Langkah 1: Prasyarat

Sebelum menyelam, pastikan prasyarat berikut:

  • Python Dipasang: Muat turun dan pasang versi Python terbaharu daripada python.org, termasuk pip semasa persediaan.
  • Pengetahuan Asas: Kebiasaan dengan konsep mengikis web, pengaturcaraan Python dan bekerja dengan perpustakaan seperti permintaan, BeautifulSoup dan Selenium.

Perpustakaan Diperlukan:

  • Permintaan: Untuk menghantar permintaan HTTP.
  • BeautifulSoup: Untuk menghuraikan kandungan HTML.
  • Selenium: Untuk mensimulasikan interaksi pengguna seperti klik butang dalam penyemak imbas.

Anda boleh memasang perpustakaan ini menggunakan arahan berikut dalam terminal anda:

pip install requests beautifulsoup4 selenium

Sebelum menggunakan Selenium, anda mesti memasang pemacu web yang sepadan dengan penyemak imbas anda. Untuk tutorial ini, kami akan menggunakan Google Chrome dan ChromeDriver. Walau bagaimanapun, anda boleh mengikuti langkah yang serupa untuk penyemak imbas lain seperti Firefox atau Edge.

Pasang Pemacu Web

  1. Semak versi penyemak imbas anda:
  2. Buka Google Chrome dan navigasi ke Bantuan > Mengenai Google Chrome daripada menu tiga titik untuk mencari versi Chrome.

  3. Muat turun ChromeDriver:

  4. Lawati halaman muat turun ChromeDriver.

  5. Muat turun versi pemacu yang sepadan dengan versi Chrome anda.

  6. Tambah ChromeDriver pada PATH sistem anda:
    Ekstrak fail yang dimuat turun dan letakkan dalam direktori seperti /usr/local/bin (Mac/Linux) atau C:WindowsSystem32 (Windows).

Sahkan Pemasangan

Mulakan fail Python scraper.py dalam direktori projek anda dan uji bahawa semuanya telah disediakan dengan betul dengan menjalankan coretan kod berikut:

from selenium import webdriver
driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH
driver.get("https://www.scrapingcourse.com/button-click")
print(driver.title)
driver.quit()

Anda boleh melaksanakan kod fail di atas dengan menjalankan arahan berikut pada terminal anda:

pip install requests beautifulsoup4 selenium

Jika kod di atas berjalan tanpa ralat, ia akan memutar antara muka penyemak imbas dan membuka URL halaman demo seperti yang ditunjukkan di bawah:

Demo Page in Selenium Browser Instance

Selenium kemudiannya akan mengekstrak HTML dan mencetak tajuk halaman. Anda akan melihat output seperti ini -

from selenium import webdriver
driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH
driver.get("https://www.scrapingcourse.com/button-click")
print(driver.title)
driver.quit()

Ini mengesahkan bahawa Selenium sedia untuk digunakan. Dengan semua keperluan dipasang dan sedia untuk digunakan, anda boleh mula mengakses kandungan halaman demo.

Langkah 2: Dapatkan Akses kepada Kandungan

Langkah pertama ialah mengambil kandungan awal halaman, yang memberikan anda gambaran garis dasar HTML halaman. Ini akan membantu anda mengesahkan ketersambungan dan memastikan titik permulaan yang sah untuk proses mengikis.

Anda akan mendapatkan semula kandungan HTML URL halaman dengan menghantar permintaan GET menggunakan perpustakaan Permintaan dalam Python. Ini kodnya:

python scraper.py

Kod di atas akan mengeluarkan HTML mentah yang mengandungi data untuk 12 produk pertama.

Pratonton pantas HTML ini memastikan permintaan itu berjaya dan anda menggunakan data yang sah.

Langkah 3: Muatkan Lebih Banyak Produk

Untuk mengakses produk yang selebihnya, anda perlu mengklik butang "Muatkan lagi" secara pemprograman pada halaman sehingga tiada lagi produk tersedia. Memandangkan interaksi ini melibatkan JavaScript, anda akan menggunakan Selenium untuk mensimulasikan klik butang.

Sebelum menulis kod, mari kita periksa halaman untuk mencari:

  • Pemilih butang "Muat lagi" (muat-lebih-btn).
  • Div yang memegang butiran produk (item produk).

Anda akan mendapat semua produk dengan memuatkan lebih banyak produk, memberikan anda set data yang lebih besar dengan menjalankan kod berikut:

Load More Button Challenge to Learn Web Scraping - ScrapingCourse.com

Kod ini membuka penyemak imbas, menavigasi ke halaman dan berinteraksi dengan butang "Muatkan lagi". HTML yang dikemas kini, kini mengandungi lebih banyak data produk, kemudian diekstrak.

Jika anda tidak mahu Selenium membuka penyemak imbas setiap kali anda menjalankan kod ini, ia juga menyediakan keupayaan penyemak imbas tanpa kepala. Pelayar tanpa kepala mempunyai semua fungsi pelayar web sebenar tetapi tiada Antara Muka Pengguna Grafik (GUI).

Anda boleh mendayakan mod tanpa kepala untuk Chrome dalam Selenium dengan mentakrifkan objek ChromeOptions dan menyerahkannya kepada pembina Chrome WebDriver seperti ini:

import requests
# URL of the demo page with products
url = "https://www.scrapingcourse.com/button-click"
# Send a GET request to the URL
response = requests.get(url)
# Check if the request was successful
if response.status_code == 200:
    html_content = response.text
    print(html_content) # Optional: Preview the HTML
else:
    print(f"Failed to retrieve content: {response.status_code}")

Apabila anda menjalankan kod di atas, Selenium akan melancarkan tika Chrome tanpa kepala, jadi anda tidak akan melihat tetingkap Chrome lagi. Ini sesuai untuk persekitaran pengeluaran yang anda tidak mahu membazir sumber pada GUI semasa menjalankan skrip mengikis pada pelayan.

Sekarang kandungan HTML yang lengkap diperoleh dengan mengekstrak butiran khusus tentang setiap produk sudah tiba masanya.

Langkah 4: Menghuraikan Maklumat Produk

Dalam langkah ini, anda akan menggunakan BeautifulSoup untuk menghuraikan HTML dan mengenal pasti elemen produk. Kemudian, anda akan mengeluarkan butiran penting untuk setiap produk, seperti nama, harga dan pautan.

pip install requests beautifulsoup4 selenium

Dalam output, anda seharusnya melihat senarai berstruktur butiran produk, termasuk nama, URL imej, harga dan pautan halaman produk, seperti ini -

from selenium import webdriver
driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH
driver.get("https://www.scrapingcourse.com/button-click")
print(driver.title)
driver.quit()

Kod di atas akan menyusun data HTML mentah ke dalam format berstruktur, menjadikannya lebih mudah untuk digunakan dan menyediakan data output untuk pemprosesan selanjutnya.

Langkah 5: Eksport Maklumat Produk ke CSV

Kini anda boleh menyusun data yang diekstrak ke dalam fail CSV, yang memudahkan anda menganalisis atau berkongsi. Modul CSV Python membantu dengan ini.

python scraper.py

Kod di atas akan membuat fail CSV baharu dengan semua butiran produk yang diperlukan.

Berikut ialah kod lengkap untuk gambaran keseluruhan:

Load More Button Challenge to Learn Web Scraping - ScrapingCourse.com

Kod di atas akan mencipta products.csv yang akan kelihatan seperti ini:

import requests
# URL of the demo page with products
url = "https://www.scrapingcourse.com/button-click"
# Send a GET request to the URL
response = requests.get(url)
# Check if the request was successful
if response.status_code == 200:
    html_content = response.text
    print(html_content) # Optional: Preview the HTML
else:
    print(f"Failed to retrieve content: {response.status_code}")

Langkah 6: Dapatkan Data Tambahan untuk Produk Teratas

Sekarang, katakan anda ingin mengenal pasti 5 produk teratas dengan harga tertinggi dan mengekstrak data tambahan (seperti penerangan produk dan kod SKU) daripada halaman individu mereka. Anda boleh melakukannya menggunakan kod seperti berikut:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# Set up the WebDriver (make sure you have the appropriate driver installed, e.g., ChromeDriver)
driver = webdriver.Chrome()
# Open the page
driver.get("https://www.scrapingcourse.com/button-click")
# Loop to click the "Load More" button until there are no more products
while True:
    try:
        # Find the "Load more" button by its ID and click it
        load_more_button = driver.find_element(By.ID, "load-more-btn")
        load_more_button.click()
        # Wait for the content to load (adjust time as necessary)
        time.sleep(2)
    except Exception as e:
        # If no "Load More" button is found (end of products), break out of the loop
        print("No more products to load.")
        break
# Get the updated page content after all products are loaded
html_content = driver.page_source
# Close the browser window
driver.quit()

Berikut ialah kod lengkap untuk gambaran keseluruhan:

from selenium import webdriver
from selenium.webdriver.common.by import By

import time

# instantiate a Chrome options object
options = webdriver.ChromeOptions()

# set the options to use Chrome in headless mode
options.add_argument("--headless=new")

# initialize an instance of the Chrome driver (browser) in headless mode
driver = webdriver.Chrome(options=options)

...

Kod ini mengisih produk mengikut harga dalam tertib menurun. Kemudian, untuk 5 produk teratas dengan harga tertinggi, skrip membuka halaman produk mereka dan mengekstrak penerangan produk dan SKU menggunakan BeautifulSoup.

Keluaran kod di atas akan menjadi seperti ini:

from bs4 import BeautifulSoup
# Parse the page content with BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
# Extract product details
products = []
# Find all product items in the grid
product_items = soup.find_all('div', class_='product-item')
for product in product_items:
    # Extract the product name
    name = product.find('span', class_='product-name').get_text(strip=True)

    # Extract the product price
    price = product.find('span', class_='product-price').get_text(strip=True)

    # Extract the product link
    link = product.find('a')['href']

    # Extract the image URL
    image_url = product.find('img')['src']

    # Create a dictionary with the product details
    products.append({
        'name': name,
        'price': price,
        'link': link,
        'image_url': image_url
})
# Print the extracted product details
for product in products[:2]:
    print(f"Name: {product['name']}")
    print(f"Price: {product['price']}")
    print(f"Link: {product['link']}")
    print(f"Image URL: {product['image_url']}")
    print('-' * 30)

Kod di atas akan mengemas kini products.csv dan ia kini akan mempunyai maklumat seperti ini:

Name: Chaz Kangeroo Hoodie
Price: 
Link: https://scrapingcourse.com/ecommerce/product/chaz-kangeroo-hoodie
Image URL: https://scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/mh01-gray_main.jpg
------------------------------
Name: Teton Pullover Hoodie
Price: 
Link: https://scrapingcourse.com/ecommerce/product/teton-pullover-hoodie
Image URL: https://scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/mh02-black_main.jpg
------------------------------
…

Kesimpulan

Mengikis halaman dengan butang tatal tak terhingga atau "Muatkan lagi" mungkin kelihatan mencabar, tetapi menggunakan alatan seperti Requests, Selenium dan BeautifulSoup memudahkan proses.

Tutorial ini menunjukkan cara untuk mendapatkan dan memproses data produk daripada halaman tunjuk cara, menyimpannya dalam format berstruktur untuk akses cepat dan mudah.

Lihat semua coretan kod di sini.

Atas ialah kandungan terperinci Mengikis Halaman Tatal Tak Terhingga dengan Butang &#Load More': Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1488
72
Polimorfisme dalam kelas python Polimorfisme dalam kelas python Jul 05, 2025 am 02:58 AM

Polimorfisme adalah konsep teras dalam pengaturcaraan berorientasikan objek Python, merujuk kepada "satu antara muka, pelbagai pelaksanaan", yang membolehkan pemprosesan bersatu pelbagai jenis objek. 1. Polimorfisme dilaksanakan melalui penulisan semula kaedah. Subkelas boleh mentakrifkan semula kaedah kelas induk. Sebagai contoh, kaedah bercakap () kelas haiwan mempunyai pelaksanaan yang berbeza dalam subkelas anjing dan kucing. 2. Penggunaan praktikal polimorfisme termasuk memudahkan struktur kod dan meningkatkan skalabilitas, seperti memanggil kaedah cabutan () secara seragam dalam program lukisan grafik, atau mengendalikan tingkah laku umum watak -watak yang berbeza dalam pembangunan permainan. 3. Polimorfisme pelaksanaan Python perlu memenuhi: Kelas induk mentakrifkan kaedah, dan kelas kanak -kanak mengatasi kaedah, tetapi tidak memerlukan warisan kelas induk yang sama. Selagi objek melaksanakan kaedah yang sama, ini dipanggil "jenis itik". 4. Perkara yang perlu diperhatikan termasuk penyelenggaraan

Terangkan penjana python dan iterators. Terangkan penjana python dan iterators. Jul 05, 2025 am 02:55 AM

Iterator adalah objek yang melaksanakan kaedah __iter __ () dan __Next __ (). Penjana adalah versi Iterator yang dipermudahkan, yang secara automatik melaksanakan kaedah ini melalui kata kunci hasil. 1. Iterator mengembalikan elemen setiap kali dia memanggil seterusnya () dan melemparkan pengecualian berhenti apabila tidak ada lagi elemen. 2. Penjana menggunakan definisi fungsi untuk menghasilkan data atas permintaan, menjimatkan memori dan menyokong urutan tak terhingga. 3. Menggunakan Iterator apabila memproses set sedia ada, gunakan penjana apabila menghasilkan data besar secara dinamik atau penilaian malas, seperti garis pemuatan mengikut baris apabila membaca fail besar. NOTA: Objek yang boleh diperolehi seperti senarai bukanlah pengaliran. Mereka perlu dicipta semula selepas pemalar itu sampai ke penghujungnya, dan penjana hanya boleh melintasi sekali.

Cara Mengendalikan Pengesahan API di Python Cara Mengendalikan Pengesahan API di Python Jul 13, 2025 am 02:22 AM

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.

Cara Menghidupkan Dua Senarai Sekali Python Cara Menghidupkan Dua Senarai Sekali Python Jul 09, 2025 am 01:13 AM

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.

Apakah petunjuk jenis python? Apakah petunjuk jenis python? Jul 07, 2025 am 02:55 AM

TypehintsinpythonsolvetheproblemofambiguityandpotentialbugsindynamiciallytypodeByallowingDeveloperStospecifyExpectedTypes.theyenhancereadability, enablearlybugdetection, andimprovetoLiaSareAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeAdeSareadDeSareadDeSareadDeSareadDeSaread

Apakah Iterator Python? Apakah Iterator Python? Jul 08, 2025 am 02:56 AM

Inpython, iteratorsareObjectsThatallowLoopingthroughCollectionsByImplementing__iter __ () dan__Next __ ()

Terangkan pernyataan Python. Terangkan pernyataan Python. Jul 07, 2025 am 12:14 AM

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.

Tutorial Python Fastapi Tutorial Python Fastapi Jul 12, 2025 am 02:42 AM

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.

See all articles