Rumah > pembangunan bahagian belakang > Tutorial Python > Memahami Penomboran dengan NewsDataHub API

Memahami Penomboran dengan NewsDataHub API

Patricia Arquette
Lepaskan: 2024-12-18 20:18:20
asal
748 orang telah melayarinya

Understanding Pagination with NewsDataHub API

Panduan ini menerangkan cara membuat penomboran melalui hasil apabila menggunakan API NewsDataHub.

NewsDataHub API ialah perkhidmatan yang menyediakan data berita melalui antara muka API RESTful. Ia melaksanakan penomboran berasaskan kursor untuk mengendalikan set data yang besar dengan cekap, membolehkan pembangun mendapatkan semula artikel berita dalam kelompok yang boleh diurus. Setiap respons termasuk satu set artikel yang setiap objek artikel mengandungi butiran seperti tajuk, penerangan, tarikh penerbitan, sumber, kandungan, kata kunci, topik dan analisis sentimen⁠. API menggunakan parameter kursor untuk navigasi lancar melalui hasil⁠ dan menyediakan dokumentasi komprehensif untuk ciri lanjutan seperti parameter carian dan pilihan penapisan⁠.

Untuk dokumentasi lawati: https://newsdatahub.com/docs

API biasanya mengembalikan jumlah data yang terhad dalam responsnya kerana mengembalikan semua hasil dalam satu permintaan biasanya tidak praktikal. Sebaliknya, mereka menggunakan penomboran — teknik yang membahagikan data kepada halaman atau kelompok yang berasingan. Ini membolehkan pelanggan mendapatkan semula satu halaman pada satu masa, mengakses subset keputusan yang boleh diurus.

Apabila anda membuat permintaan awal ke titik akhir /news dan menerima kumpulan pertama hasil, bentuk respons kelihatan seperti ini:

{
    "next_cursor": "VW93MzoqpzM0MzgzMQpqwDAwMDQ5LjA6MzA0NTM0Mjk1T0xHag==",
        "total_results": 910310,
        "per_page": 10,
        "data": [
            {
                "id": "4927167e-93f3-45d2-9c53-f1b8cdf2888f",
                "title": "Jail time for wage theft: New laws start January",
                "source_title": "Dynamic Business",
                "source_link": "https://dynamicbusiness.com",
                "article_link": "https://dynamicbusiness.com/topics/news/jail-time-for-wage-theft-new-laws-start-january.html",
                "keywords": [
                    "wage theft",
                    "criminalisation of wage theft",
                    "Australian businesses",
                    "payroll errors",
                    "underpayment laws"
                ],
                "topics": [
                    "law",
                    "employment",
                    "economy"
                ],
                "description": "Starting January 2025, deliberate wage theft will come with serious consequences for employers in Australia.",
                "pub_date": "2024-12-17T07:15:00",
                "creator": null,
                "content": "The criminalisation of wage theft from January 2025 will be a wake-up call for all Australian businesses. While deliberate underpayment has rightly drawn scrutiny, our research reveals that accidental payroll errors are alarmingly common, affecting nearly 60% of companies in the past two years. Matt Loop, VP and Head of Asia at Rippling Starting January 1, 2025, Australias workplace compliance landscape will change dramatically. Employers who deliberately underpay employees could face fines as high as AU. 25 million or up to 10 years in prison under new amendments to the Fair Work Act 2009 likely. Employers must act decisively to ensure compliance, as ignorance or unintentional errors wont shield them from civil or criminal consequences. Matt Loop, VP and Head of Asia at Rippling, says: The criminalisation of wage theft from January 2025 will be a wake-up call for all Australian businesses. While deliberate underpayment has rightly drawn scrutiny, our research reveals that accidental payroll errors are alarmingly common, affecting nearly 60% of companies in the past two years. Adding to the challenge, many SMEs still rely on fragmented, siloed systems to manage payroll. This not only complicates operations but significantly increases the risk of errors heightening the potential for non-compliance under the new laws. The urgency for businesses to modernise their approach cannot be overstated. Technology offers a practical solution, helping to streamline and automate processes, reduce human error, and ensure compliance. But this is about more than just avoiding penalties. Accurate and timely pay builds trust with employees, strengthens workplace morale, and fosters accountability. The message is clear: wage theft isnt just a financial risk anymoreits a criminal offense. Now is the time to ensure your business complies with Australias new workplace laws. Keep up to date with our stories on LinkedIn, Twitter, Facebook and Instagram.",
                "media_url": "https://backend.dynamicbusiness.com/wp-content/uploads/2024/12/db-3-4.jpg",
                "media_type": "image/jpeg",
                "media_description": null,
                "media_credit": null,
                "media_thumbnail": null,
                "language": "en",
                "sentiment": {
                    "pos": 0.083,
                    "neg": 0.12,
                    "neu": 0.796
                }
            },
        // more article objects
      ]
  }
Salin selepas log masuk

Perhatikan sifat pertama dalam respons JSON - next_cursor. Nilai dalam next_cursor menghala ke permulaan halaman seterusnya hasil. Apabila membuat permintaan seterusnya, anda menentukan parameter pertanyaan kursor seperti ini:

https://api.newsdatahub.com/v1/news?cursor=VW93MzoqpzM0MzgzMQpqwDAwMDQ5LjA6MzA0NTM0Mjk1T0xHag==

Cara paling mudah untuk mencuba penomboran melalui keputusan adalah melalui Posmen, atau alat yang serupa. Berikut ialah video pendek yang menunjukkan cara menggunakan nilai kursor untuk membuat penomboran melalui keputusan dalam Posmen.

https://youtu.be/G7kkTwCPtCE

Apabila nilai next_cursor adalah batal, ini menunjukkan bahawa anda telah mencapai penghujung keputusan yang tersedia untuk kriteria pilihan anda.

Penomboran melalui hasil dengan Python

Berikut ialah cara untuk menyediakan penomboran asas melalui hasil NewsDataHub API menggunakan Python.

import requests

# Make sure to keep your API keys secure
# Use environment variables instead of hardcoding
API_KEY = 'your_api_key'
BASE_URL = 'https://api.newsdatahub.com/v1/news'

headers = {
    'X-Api-Key': API_KEY,
    'Accept': 'application/json',
    'User-Agent': 'Mozilla/5.0 Chrome/83.0.4103.97 Safari/537.36'
}

params = {}
cursor = None

# Limit to 5 pages to avoid rate limiting while demonstrating pagination

for _ in range(5):
    params['cursor'] = cursor

    try:
        response = requests.get(BASE_URL, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()
    except (requests.HTTPError, ValueError) as e:
        print(f"There was an error when making the request: {e}")
        continue

    cursor = data.get('next_cursor')

    for article in data.get('data', []):
        print(article['title'])

    if cursor is None:
        print("No more results")
        break
Salin selepas log masuk

Penomboran berasaskan indeks

Sesetengah API menggunakan penomboran berasaskan indeks untuk membahagikan hasil kepada ketulan diskret. Dengan pendekatan ini, API mengembalikan halaman data tertentu—serupa dengan jadual kandungan dalam buku, di mana setiap nombor halaman menghala ke bahagian tertentu.

Walaupun penomboran berasaskan indeks lebih mudah untuk dilaksanakan, ia mempunyai beberapa kelemahan. Ia bergelut dengan kemas kini masa nyata, boleh menghasilkan hasil yang tidak konsisten dan memberi lebih tekanan pada pangkalan data kerana mendapatkan semula setiap halaman baharu memerlukan pengimbasan secara berurutan melalui rekod sebelumnya.

Kami telah membincangkan asas penomboran berasaskan kursor dalam API NewsDataHub. Untuk ciri lanjutan seperti parameter carian dan pilihan penapisan, sila rujuk dokumentasi API lengkap di https://newsdatahub.com/docs.

Atas ialah kandungan terperinci Memahami Penomboran dengan NewsDataHub API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan