Skip to content

GnuPixie/Informer-RT-scraping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Informer Rio Tinto Scraping

Sveobuhvatan asinhroni web scraper dizajniran da prikuplja i organizuje novinske članke o Rio Tinto kompaniji sa srpskog sajta Informer.rs. Skener efikasno obrađuje više stranica sa člancima i izvozi podatke u formatiran Excel fajl.

🚀 Funkcionalnosti

  • Asinhrono procesiranje: Koristi aiohttp i asyncio biblioteke za brzo, istovremeno skeniranje
  • Organizacija podataka: Izdvaja naslove članaka, datume, vreme i kompletan sadržaj
  • Excel izvoz: Automatski generiše formatirane Excel fajlove sa stilizovanim zaglavljima
  • Pametno formatiranje:
    • Automatsko prilagođavanje širine kolona i visine redova
    • Profesionalno stilizovanje sa obojenim zaglavljima
    • Prelamanje teksta za bolju čitljivost
    • Hronološko sortiranje (najnoviji prvi)
  • Rukovanje greškama: Robusno rukovanje izuzecima sa upravljanjem timeout-a
  • Uklanjanje duplikata: Automatski filtrira duplikate članaka
  • Windows kompatibilnost: Optimizovano za Windows sisteme sa UTF-8 enkodiranjem

📋 Sistemski zahtevi

  • Python 3.7 ili novija verzija
  • Internet konekcija
  • Windows OS (optimizovano za Windows, ali može biti prilagođeno drugim sistemima)

🛠️ Instalacija

  1. Klonirajte repozitorijum:
git clone https://github.com/GnuPixie/Informer-RT-scraping.git
cd Informer-RT-scraping
  1. Instalirajte potrebne biblioteke:
pip install -r requirements.txt

💻 Korišćenje

Jednostavno pokrenite glavni skript:

python Informer_Rio_Tinto.py

Konfiguracija

Možete modifikovati sledeća podešavanja u glavna_funkcija():

  • pocetna_stranica: Broj početne stranice (zadato: 1)
  • krajnja_stranica: Broj krajnje stranice (zadato: 18)
  • maksimalno_istovremenih_zahteva: Ograničenje istovremenih zahteva (zadato: 50)
  • izlazni_fajl: Ime izlaznog Excel fajla (zadato: "Informer_RioTinto_Kompilacija.xlsx")

Primer konfiguracije:

# U glavna_funkcija():
pocetna_stranica = 1
krajnja_stranica = 10  # Skeniraj prvih 10 stranica
maksimalno_istovremenih_zahteva = 30  # Smanji broj istovremenih zahteva
izlazni_fajl = "Rio_Tinto_Clanci_Prilagodjen.xlsx"

📊 Rezultat

Skener generiše Excel fajl sa sledećom strukturom:

Datum i vreme Naslov Sadržina
2024-10-09 08:42 Naslov članka Kompletan sadržaj članka...

Karakteristike Excel izlaza

  • Formatirana zaglavlja: Podebljani beli tekst na plavoj pozadini
  • Automatski prilagođene kolone: Optimalno dimenzionisane na osnovu sadržaja
  • Prelamanje teksta: Dugačak sadržaj je pravilno prelomljen
  • Sortirani podaci: Članci sortirani po datumu (najnoviji prvi)
  • Čist sadržaj: Uklanja reklame, povezane članke i druge nepoželjne elemente

🔧 Kako funkcioniše

Korak 1: Otkrivanje članaka

  • Skenira određene stranice Rio Tinto tag-a na Informer.rs
  • Izdvaja URL-ove članaka, datume i vremena
  • Automatski uklanja duplikate članaka

Korak 2: Izdvajanje sadržaja

  • Pojedinačno posećuje svaki URL članka
  • Izdvaja naslov članka i glavni sadržaj
  • Filtrira nepoželjne elemente (reklame, povezane članke, itd.)
  • Elegantno rukuje timeout-ima i greškama

Korak 3: Obrada podataka

  • Organizuje podatke koristeći pandas DataFrame
  • Formatira datume za Excel kompatibilnost
  • Sortira članke hronološki
  • Čisti i validira podatke

Korak 4: Generisanje Excel fajla

  • Kreira Excel fajl sa openpyxl bibliotekom
  • Primenjuje profesionalno stilizovanje
  • Automatski prilagođava formatiranje za čitljivost
  • Čuva finalni formatirani fajl

🎨 Prilagođavanje

Dodavanje novih filtera sadržaja

Za filtriranje dodatnih nepoželjnih elemenata, modifikujte nepozeljni_selektori listu u skeniraj_sadrzaj_clanka():

nepozeljni_selektori = [
    'div.related-news', 
    'div.banner-mobile-single-news',
    'your-custom-selector'  # Dodajte vaš selektor ovde
]

Menjanje Excel stilizovanja

Modifikujte stilizovanje u stilizuj_i_preimenuj_zaglavlja() funkciji:

font_zaglavlja = Font(bold=True, color="FFFFFF")  # Font zaglavlja
popuna_zaglavlja = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")  # Boja pozadine

⚠️ Rukovanje greškama

Skener uključuje sveobuhvatno rukovanje greškama:

  • Upravljanje timeout-ima: 20 sekundi timeout za svaki zahtev
  • Provera HTTP statusa: Validira status kodove odgovora
  • Validacija podataka: Osigurava da sadržaj članka postoji pre obrade
  • Konflikti Excel fajla: Upozorava ako je izlazni fajl već otvoren
  • Mrežni problemi: Elegantno rukuje problemima sa konekcijom

🐛 Rešavanje problema

Česti problemi

  1. "Greška pri kreiranju Excel fajla": Uverite se da izlazni Excel fajl nije otvoren u drugom programu
  2. "Nisu pronađeni članci": Proverite internet konekciju i verifikujte da li je sajt dostupan
  3. "Greške enkodiranja": Skripta automatski rukuje UTF-8 enkodiranjem za srpske karaktere
  4. "Previše zahteva": Smanjite vrednost maksimalno_istovremenih_zahteva

Debug režim

Za detaljniji izlaz, skripta automatski ispisuje napredak za svaki skeniran članak.

📝 Napomene

  • Skener je specifično dizajniran za Informer.rs Rio Tinto tag stranice
  • Poštuje strukturu sajta kakva je bila u vreme razvoja
  • Skripta uključuje ograničavanje brzine da bi izbegao preopterećivanje servera
  • Svi srpski karakteri su pravilno rukiovani sa UTF-8 enkodiranjem

🤝 Doprinosaženje

  1. Forkujte repozitorijum
  2. Kreirajte svoju feature granu (git checkout -b feature/NovaFunkcionalnost)
  3. Commitujte svoje izmene (git commit -m 'Dodaj novu funkcionalnost')
  4. Pushujte u granu (git push origin feature/NovaFunkcionalnost)
  5. Otvorite Pull Request

📄 Licenca

Ovaj projekat je licenciran pod MIT licencom - pogledajte LICENSE fajl za detalje.

⚖️ Odricanje odgovornosti

Ovaj alat je namenjen edukativnim i istraživačkim svrhama. Molimo vas da osigurate usklađenost sa robots.txt fajlom sajta i uslovima korišćenja prilikom skeniranja podataka. Uvek poštujte ograničenja brzine i budite obzirni prema resursima servera.


Napravljeno sa ❤️ za prikupljanje i analizu podataka

About

Sveobuhvatan asinhroni web scraper dizajniran da prikuplja i organizuje novinske članke o Rio Tinto kompaniji sa srpskog sajta Informer.rs. Skener efikasno obrađuje više stranica sa člancima i izvozi podatke u formatiran Excel fajl.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages