Perayap berita yang sangat sederhana di Python. Dikembangkan di Humboldt University of Berlin.
Mulai Cepat | Tutorial | Sumber Berita | Kertas
Fundus adalah:
Perayap berita statis. Fundus memungkinkan Anda merangkak artikel berita online dengan hanya beberapa baris kode Python! Baik itu dari situs web langsung atau dataset CC-News.
Paket Python open-source. Fundus dibangun di atas gagasan membangun sesuatu bersama. Kami menyambut kontribusi Anda untuk membantu Fundus tumbuh!
Untuk menginstal dari PIP, cukup lakukan:
pip install fundus
Fundus membutuhkan Python 3.8+.
Mari kita gunakan fundus untuk merangkak 2 artikel dari penerbit yang berbasis di AS.
from fundus import PublisherCollection , Crawler
# initialize the crawler for news publishers based in the US
crawler = Crawler ( PublisherCollection . us )
# crawl 2 articles and print
for article in crawler . crawl ( max_articles = 2 ):
print ( article )Itu sudah!
Jika Anda menjalankan kode ini, itu harus mencetak sesuatu seperti ini:
Fundus-Article:
- Title: "Feinstein's Return Not Enough for Confirmation of Controversial New [...]"
- Text: "Democrats jammed three of President Joe Biden's controversial court nominees
through committee votes on Thursday thanks to a last-minute [...]"
- URL: https://freebeacon.com/politics/feinsteins-return-not-enough-for-confirmation-of-controversial-new-hampshire-judicial-nominee/
- From: FreeBeacon (2023-05-11 18:41)
Fundus-Article:
- Title: "Northwestern student government freezes College Republicans funding over [...]"
- Text: "Student government at Northwestern University in Illinois "indefinitely" froze
the funds of the university's chapter of College Republicans [...]"
- URL: https://www.foxnews.com/us/northwestern-student-government-freezes-college-republicans-funding-poster-critical-lgbtq-community
- From: FoxNews (2023-05-09 14:37)Cetakan ini memberi tahu Anda bahwa Anda berhasil merangkak dua artikel!
Untuk setiap artikel, detail cetakan:
Mungkin Anda ingin merangkak sumber berita tertentu sebagai gantinya. Mari kita merangkak artikel berita dari Washington Times saja:
from fundus import PublisherCollection , Crawler
# initialize the crawler for The New Yorker
crawler = Crawler ( PublisherCollection . us . TheNewYorker )
# crawl 2 articles and print
for article in crawler . crawl ( max_articles = 2 ):
print ( article ) Untuk merangkak banyak data, fundus bergantung pada arsip web CommonCrawl , khususnya berita merangkak CC-NEWS . Jika Anda tidak terbiasa dengan CommonCrawl atau CC-NEWS periksa situs web mereka. Cukup impor CCNewsCrawler kami dan pastikan untuk memeriksa tutorial kami sebelumnya.
from fundus import PublisherCollection , CCNewsCrawler
# initialize the crawler using all publishers supported by fundus
crawler = CCNewsCrawler ( * PublisherCollection )
# crawl 1 million articles and print
for article in crawler . crawl ( max_articles = 1000000 ):
print ( article ) Catatan : Secara default, crawler menggunakan semua inti CPU yang tersedia di sistem Anda. Untuk kinerja optimal, kami sarankan secara manual mengatur jumlah proses menggunakan parameter processes . Aturan praktis yang baik adalah mengalokasikan one process per 200 Mbps of bandwidth . Ini dapat bervariasi tergantung pada kecepatan inti.
Catatan : Perayapan di atas memakan waktu ~ 7 jam menggunakan seluruh PublisherCollection pada mesin dengan koneksi 1000 Mbps, Core i9-13905h, RAM 64GB, Windows 11 dan tanpa mencetak artikel. Perkiraan waktu dapat bervariasi secara substansial tergantung pada penerbit yang digunakan dan bandwidth yang tersedia. Selain itu, tidak semua penerbit termasuk dalam CC-NEWS Crawl (terutama penerbit yang berbasis di AS). Untuk penciptaan corpus besar, orang juga dapat menggunakan crawler biasa dengan hanya memanfaatkan sitemaps, yang membutuhkan bandwidth secara signifikan lebih sedikit.
from fundus import PublisherCollection , Crawler , Sitemap
# initialize a crawler for us/uk based publishers and restrict to Sitemaps only
crawler = Crawler ( PublisherCollection . us , PublisherCollection . uk , restrict_sources_to = [ Sitemap ])
# crawl 1 million articles and print
for article in crawler . crawl ( max_articles = 1000000 ):
print ( article )Kami menyediakan tutorial cepat untuk membantu Anda memulai dengan perpustakaan:
Jika Anda ingin berkontribusi, periksa tutorial ini:
Anda dapat menemukan penerbit yang saat ini didukung di sini .
Juga: Menambahkan penerbit baru itu mudah - pertimbangkan berkontribusi pada proyek!
Lihatlah tolok ukur evaluasi kami.
Tabel berikut merangkum kinerja keseluruhan fundus dan mengevaluasi pencakar dalam hal rata-rata presisi, penarikan, skor F1 dan standar deviasi mereka. Tabel diurutkan dalam urutan menurun atas skor F1:
| Pengikis | Presisi | Mengingat | F1-score | Versi |
|---|---|---|---|---|
| Fundus | 99,89 ± 0,57 | 96.75 ± 12.75 | 97,69 ± 9,75 | 0.4.1 |
| Trafilatura | 93.91 ± 12.89 | 96.85 ± 15.69 | 93.62 ± 16.73 | 1.12.0 |
| Berita-silakan | 97,95 ± 10,08 | 91.89 ± 16.15 | 93,39 ± 14,52 | 1.6.13 |
| Bte | 81.09 ± 19.41 | 98.23 ± 8.61 | 87.14 ± 15.48 | / |
| justext | 86.51 ± 18.92 | 90.23 ± 20.61 | 86.96 ± 19.76 | 3.0.1 |
| Boilernet | 85,96 ± 18,55 | 91.21 ± 19.15 | 86.52 ± 18.03 | / |
| Boilerpipe | 82.89 ± 20.65 | 82.11 ± 29,99 | 79,90 ± 25,86 | 1.3.0 |
Harap kutip makalah berikut saat menggunakan fundus atau membangun di atas pekerjaan kami:
@inproceedings { dallabetta-etal-2024-fundus ,
title = " Fundus: A Simple-to-Use News Scraper Optimized for High Quality Extractions " ,
author = " Dallabetta, Max and
Dobberstein, Conrad and
Breiding, Adrian and
Akbik, Alan " ,
editor = " Cao, Yixin and
Feng, Yang and
Xiong, Deyi " ,
booktitle = " Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations) " ,
month = aug,
year = " 2024 " ,
address = " Bangkok, Thailand " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2024.acl-demos.29 " ,
pages = " 305--314 " ,
}Silakan kirim email ke pertanyaan atau komentar Anda ke Max Dallabetta
Terima kasih atas minat Anda untuk berkontribusi! Ada banyak cara untuk terlibat; Mulailah dengan pedoman kontributor kami dan kemudian periksa masalah terbuka ini untuk tugas -tugas tertentu.
Mit