All Projects → juzraai → dijnet-bot

juzraai / dijnet-bot

Licence: MIT License
Az összes számlád még egy helyen :)

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to dijnet-bot

Colly
Elegant Scraper and Crawler Framework for Golang
Stars: ✭ 15,535 (+91282.35%)
Mutual labels:  crawler, scraper
Tumblthree
A Tumblr Backup Application
Stars: ✭ 211 (+1141.18%)
Mutual labels:  crawler, backup
Tianyancha
pip安装的天眼查爬虫API,指定的单个/多个企业工商信息一键保存为Excel/JSON格式。A Battery-included Scraper API of Tianyancha, the best Chinese business data and investigation platform.
Stars: ✭ 206 (+1111.76%)
Mutual labels:  crawler, scraper
Goribot
[Crawler/Scraper for Golang]🕷A lightweight distributed friendly Golang crawler framework.一个轻量的分布式友好的 Golang 爬虫框架。
Stars: ✭ 190 (+1017.65%)
Mutual labels:  crawler, scraper
Polite
Be nice on the web
Stars: ✭ 253 (+1388.24%)
Mutual labels:  crawler, scraper
Jvppeteer
Headless Chrome For Java (Java 爬虫)
Stars: ✭ 193 (+1035.29%)
Mutual labels:  crawler, scraper
Goose Parser
Universal scrapping tool, which allows you to extract data using multiple environments
Stars: ✭ 211 (+1141.18%)
Mutual labels:  crawler, scraper
Instagram Scraper
scrapes medias, likes, followers, tags and all metadata. Inspired by instagram-php-scraper,bot
Stars: ✭ 2,209 (+12894.12%)
Mutual labels:  crawler, scraper
Skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.
Stars: ✭ 231 (+1258.82%)
Mutual labels:  crawler, scraper
Annie
👾 Fast and simple video download library and CLI tool written in Go
Stars: ✭ 16,369 (+96188.24%)
Mutual labels:  crawler, scraper
Instagram Crawler
Crawl instagram photos, posts and videos for download.
Stars: ✭ 178 (+947.06%)
Mutual labels:  crawler, scraper
papercut
Papercut is a scraping/crawling library for Node.js built on top of JSDOM. It provides basic selector features together with features like Page Caching and Geosearch.
Stars: ✭ 15 (-11.76%)
Mutual labels:  crawler, scraper
Linkedin Profile Scraper
🕵️‍♂️ LinkedIn profile scraper returning structured profile data in JSON. Works in 2020.
Stars: ✭ 171 (+905.88%)
Mutual labels:  crawler, scraper
Querylist
🕷️ The progressive PHP crawler framework! 优雅的渐进式PHP采集框架。
Stars: ✭ 2,392 (+13970.59%)
Mutual labels:  crawler, scraper
Datmusic Api
Alternative for VK Audio API
Stars: ✭ 160 (+841.18%)
Mutual labels:  crawler, scraper
Media Scraper
Scrapes all photos and videos in a web page / Instagram / Twitter / Tumblr / Reddit / pixiv / TikTok
Stars: ✭ 206 (+1111.76%)
Mutual labels:  crawler, scraper
Google Play Scraper
Google play scraper for Python inspired by <facundoolano/google-play-scraper>
Stars: ✭ 143 (+741.18%)
Mutual labels:  crawler, scraper
Youtube Projects
This repository contains all the code I use in my YouTube tutorials.
Stars: ✭ 144 (+747.06%)
Mutual labels:  crawler, scraper
Ruiji.net
crawler framework, distributed crawler extractor
Stars: ✭ 220 (+1194.12%)
Mutual labels:  crawler, scraper
ceiba-dl
NTU CEIBA 資料下載工具
Stars: ✭ 80 (+370.59%)
Mutual labels:  scraper, backup

Díjnet Bot - Az összes számlád még egy helyen

A Díjnet Bot lementi az összes Díjnet-en tárolt számládat, így azok immáron még egy helyen, Nálad is meglesznek.

Funkciók

  • Mindent visz: az összes számla összes letölthető fájlját lementi (számla PDF, számla XML, terhelési összesítő, ...).
  • Nem gatyázik: ha valamit már letöltött, legközelebb átugorja, vagyis mindig csak az új számláidat fogja lementeni.
  • Ért a szóból: többféle módon beállítható, akár környezeti változókkal, akár konfigurációs fájllal, de még parancssori argumentumokkal is.
  • Tettre kész: a parancssoros interfész és az inkrementális letöltési funkció miatt ideális arra, hogy ütemezett feladatként használd.
  • Rendszerető: a letöltött fájlokat mappákba rendezi, szolgáltató, szolgáltatás és dátum szerint.
  • Kíméletes: a lapok és fájlok letöltése között másodperceket vár, hogy a Díjnet szerverét ne terhelje túl.

Használata

Ahhoz, hogy a programot futtatni tudd, telepítened kell a Node.js legalább 12-es verzióját.

A Díjnet Bot önmagában egyetlen fájl (dijnet-bot.js), melyet innen tudsz letölteni.

Ha duplakattintással szeretnéd futtatni (vagyis nem terminálból/parancssorból), akkor ezt a fájlt, vagy a *.js fájlokat az oprendszeredben hozzá kell rendelned a Node-hoz. (Windows-on: jobb klikk a fájlon -> Társítás -> Node.js vagy Másik alkalmazás -> "c:\Program Files\nodejs\node.exe")

Egyéb esetben terminálból így tudod elindítani a programot (abból a könyvtárból, ahol a dijnet-bot.js van):

$ node dijnet-bot

(Opcionális: ha letöltöd a program forráskódját, és npm i -g segítségével telepíted, onnantól kezdve egyszerűen a dijnet-bot paranccsal tudod indítani bármilyen könyvtárból.)

A program meg fogja kérdezi a Díjnet belépési adataidat, majd alapértelmezett beállításokkal megkezdi a számlák learatását.

Beállítás

A program némely paramétere állítható (pl. kimeneti mappa, kérések közti várakozás). Ha az alapértelmezett beállítások nem felelnek meg, 3 módon tudod a programot konfigurálni:

  • konfigfájllal
  • környezeti változókkal
  • parancssori argumentumokkal

A konfigfájlt .env néven kell elmenteni abba a mappába, ahonnan a Díjnet Bot-ot futtatod. A beállítási lehetőségekről és a fájl formátumáról a .env.example fájl ad útbaigazítást.

A .env.example fájlban leírt kulcs-érték párokat beállíthatod környezeti változókként is. Az így megadott értékek magasabb prioritást fognak élvezni, mint amit a .env fájl tartalmaz.

A parancssori argumentumok leírása és alapértelmezett értékeik a -h kapcsolóval tekinthetők meg:

$ node dijnet-bot -h

Ezek a paraméterek felülbírálják a környezeti változókat is.

Ha a program egyik fenti módon sem kap Díjnet felhasználónevet vagy jelszót, akkor indításkor meg fogja ezeket kérdezni.

Működése

  1. Bejelentkezik Díjnet-en (elküldi a login űrlapot)
  2. Rámegy a "Számlák keresése" oldalra
  3. Elküldi az űrlapot üresen, hogy megkapja az összes számlát
  4. Kiolvassa a számlák adatait, majd végigmegy a számlákon:
    1. Ha ennek a számlának a fájljait még nem töltötte le, akkor:
      1. Megnyitja a számla adatlapját
      2. Rámegy a "Letöltés" fülre
      3. Letölti az összes fájlt, ami be van linkelve
      4. Megjelöli ezt a számlát, hogy a program későbbi futtatásánál ne töltse le újra
      5. Visszamegy a számla listához

Az eredmény, vagyis a letöltött fájlok a kimeneti mappába kerülnek (alapértelmezésként ./szamlak), szolgáltató, szolgáltatás és dátum bontásban. A könyvtárszerkezet az alábbiak szerint alakul:

szamlak/
	szolgáltató neve - szolgáltatási azonosító/
		dátum/
			számla fájljai

A szolgáltató neve és a szolgáltatási azonosító normalizálva lesz, a felismerhető ékezetes karakterek át lesznek alakítva ékezet nélkülivé, minden egyéb nem alfanumerikus karakter pedig el lesz távolítva. A számlák egyes fájljai úgy lesznek elnevezve, ahogy a Díjnet szerver generálja.

A program minden alkalommal, mielőtt kérést küld a Díjnet felé, vár néhány másodpercet. Az érték állítható, javallott legalább 3-5 másodpercet megadni. Erre azért van szükség, hogy a Díjnet szerverét minél kevésbé terheljük.

A program a kimeneti mappán belül a kesz.txt fájlba beírja azon számlák azonosítóját (számlaszám/bizonylatszám), amelyeknek minden fájlját sikerült lementeni. Így a következő futtatásakor ezeket a számlákat át tudja ugrani, vagyis csak az újabb (vagy korábban nem lementett) számlákkal fog foglalkozni.

Motiváció

A Díjnet az ingyenes szolgáltatása keretében csak bizonyos ideig őrzi meg a számlákat. Ha később is el akarjuk érni a fájlokat, akkor

A Díjnet Bot az utóbbi megoldás automatizálására szolgál, vagyis gyakorlatilag helyettünk kattintgat végig a számlákon és a Díjnet által biztosított letöltési linkeken.

A fenti két út természetesen nem zárja ki egymást, a SzámlaPlusz funkcióra érdemes előfizetni még a Díjnet Bot használata mellett is, mert minél több helyen vannak meg a fontos fájljaink, annál jobb.

Az automatizálási feladatra már mások is készítettek szkripteket (pl. wolandmaster/dijnet-dump). Én ezeket nem próbáltam ki, mert kihívást éreztem abban, hogy magam is összerakjak egy ilyen programot nulláról, elsősorban saját célra, saját igények szerint.

Licensz

MIT

Közreműködés

Ha kérdésed, ötleted, igényed (feature request) van, bátran nyiss egy ticketet az Issues fülön! :)

Ha hibát találtál, kérlek szintén jelezd ugyanitt, megadva minél több részletet a hibához (hibaüzenet, error.log fájl tartalma, vagy elvárt és tapasztalt működés különbsége).

Ha netán meg is bütyköltél valamit, lécci küldj egy pull request-et.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].