τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Στο ενημερωμένο περιεχόμενο αυτού του άρθρου, οι εικόνες και τα σαρωμένα αρχεία PDF μπορούν επίσης να υποστηρίξουν ομαδική εξαγωγή περιεχομένου καθορισμένης περιοχής. είναι αρκετό, αλλά αν είναι ψηφιακό, δεν είναι μεγάλο πρόβλημα, επομένως είναι καλύτερο να εξαγάγετε την αμιγώς ηλεκτρονική έκδοση του αρχείου PDF για το καλύτερο αποτέλεσμα.
Απαίτηση 1: Εάν έχω μεγάλο αριθμό ηλεκτρονικών εγγράφων PDF της ίδιας μορφής, πρέπει να εξαγάγω αριθμούς ή κείμενο σε συγκεκριμένες περιοχές.
Απαίτηση 2: Έχω μια δέσμη εγγράφων PDF, αλλά τα ονόματα των αρχείων είναι όλα αλλοιωμένα. Πρέπει να μετονομάσω ομαδικά αυτά τα αρχεία με βάση το κείμενο τίτλου της πρώτης γραμμής της πρώτης σελίδας του αρχείου PDF.
Σημείωση: Δεν είναι κατάλληλο για σενάρια: Εάν οι θέσεις των περιοχών που πρέπει να εξαχθούν από πολλά αρχεία PDF είναι διαφορετικές, για παράδειγμα, ο αριθμός που θέλω να εξαγάγω είναι στις συντεταγμένες (30, 30) στο πρώτο αρχείο PDF, και το αποτέλεσμα αλλάζει στο δεύτερο αρχείο Αν γίνει η συντεταγμένη του (35, 35), τότε το λογισμικό δεν θα μπορεί να εξαγάγει πολύ καλά το κείμενο του περιεχομένου, επομένως το πεδίο εφαρμογής αυτού του κώδικα είναι ότι έχουν πολλά έγγραφα PDF. Η ίδια μορφή και οι θέσεις PDF όπου βρίσκονται οι πληροφορίες κειμένου που πρέπει να εξαχθούν είναι βασικά οι ίδιες.
Ιδέα 1: Επιλέγουμε τυχαία ένα αρχείο PDF ως δείγμα και, στη συνέχεια, χρησιμοποιούμε κώδικα για να επισημάνουμε τις περιοχές που θα εξαχθούν με πλαίσια και, στη συνέχεια, αποθηκεύουμε τις συντεταγμένες αυτών των περιοχών Κατά την επεξεργασία κάθε PDF σε παρτίδες, θα χρησιμοποιήσουμε τις αποθηκευμένες Τοπικές συντεταγμένες για εξαγωγή κειμένου ή αριθμών που αντιστοιχούν στην τοποθεσία
Σχηματικό διάγραμμα ιδεών:
Το τελικό διάγραμμα αποτελεσμάτων:
Τα ελαττώματα αυτής της ιδέας και τα σημεία που χρήζουν προσοχής:
1 Η θέση των δεδομένων που πρόκειται να εξαχθούν από κάθε αρχείο που έχει υποστεί επεξεργασία παρτίδας πρέπει να είναι η ίδια. Για παράδειγμα, ο αριθμός που θα εξαχθεί από το πρώτο αρχείο PDF βρίσκεται στις συντεταγμένες [100, 100] και στη συνέχεια ο αριθμός που πρόκειται να εξαχθεί. που εξάγεται από κάθε επόμενο αρχείο πρέπει να βρίσκεται στις συντεταγμένες [100, 100], εάν αλλάξει αυτή η θέση, δεν θα εξαχθούν τα απαιτούμενα δεδομένα.
2. Εάν το εξαγόμενο κείμενο είναι ατελές, σημαίνει ότι το επιλεγμένο πλαίσιο μπορεί να είναι ελαφρώς μικρότερο. Έχω δημιουργήσει μια συνάρτηση στον κώδικά μου για να αυξήσω το μέγεθος μιας συγκεκριμένης περιοχής ξεχωριστά.
Απαίτηση 2 Ιδέα: Τα ονόματα μιας παρτίδας εγγράφων PDF είναι όλα αλλοιωμένα. Πρέπει να μετονομάσω αυτά τα αρχεία σε παρτίδες με βάση τον τίτλο της πρώτης σελίδας του αρχείου PDF αρχείο PDF και, στη συνέχεια, αποκτήστε την πρώτη γραμμή του περιεχομένου του PDF και, στη συνέχεια, μετονομάστε το αρχείο Αυτός ο κώδικας δεν είναι περίπλοκος, επομένως δεν περιλαμβάνεται σε αυτήν τη σελίδα.
Κώδικας:
- from typing import Optional, Dict, List
-
- from solapi.magic_eden.site_api.utils.consts import MEAPIUrls
- from solapi.magic_eden.site_api.utils.data import collection_stats_cleaner, collection_info_cleaner,
- collection_list_stats_cleaner
- from solapi.magic_eden.site_api.utils.types import MECollectionStats, MECollectionInfo, MECollectionMetrics
- from solapi.utils.api import BaseApi
-
-
-
- class MagicEdenCollectionApi(BaseApi):
-
- def get_collection_stats_dirty(self, symbol: str) -> Optional[Dict]:
- url = f'{MEAPIUrls.COLLECTION_STATS}{symbol}'
- res = self._get_request(url)
- return res.get('results') if isinstance(res, dict) else None
-
- def get_collection_info_dirty(self, symbol: str) -> Optional[Dict]:
- url = f'{MEAPIUrls.COLLECTION_INFO}{symbol}'
- res = self._get_request(url)
- return res if bool(res) else None
-
- def get_collection_stats(self, symbol: str) -> Optional[MECollectionStats]:
- data = self.get_collection_stats_dirty(symbol)
- if data:
- return collection_stats_cleaner(data)
-
- def get_collection_info(self, symbol: str) -> Optional[MECollectionInfo]:
- data = self.get_collection_info_dirty(symbol)
- if data:
- return collection_info_cleaner(data)
-
- def get_collection_list_stats_dirty(self):
- url = MEAPIUrls.COLLECTION_LIST_STATS
- res = self._get_request(url)
- return res.get('results') if isinstance(res, dict) else None
-
- def get_collection_list_stats(self) -> Optional[List[MECollectionMetrics]]:
- data = self.get_collection_list_stats_dirty()
- if data:
- return list(map(lambda x: collection_list_stats_cleaner(x), data))
-
- def get_collection_list_dirty(self):
- url = MEAPIUrls.COLLECTION_LIST
- res = self._get_request(url)
- return res.get('collections') if isinstance(res, dict) else None
-
- def get_collection_list(self) -> Optional[List[MECollectionInfo]]:
- data = self.get_collection_list_dirty()
- if data:
- return list(map(lambda x: collection_info_cleaner(x), data))
Σύνδεσμος λήψης κώδικα:
Σύνδεσμος: https://pan.baidu.com/s/1WQQ8kaDilaagjoK5IrYZzA
Κωδικός εξαγωγής: 1111