ನಿಯೋಜಿಸಲಾದ Scrapy ಯೋಜನೆಯಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಲೋಡ್ ಮಾಡಿ
Scrapy ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿ ಸಂಪನ್ಮೂಲವನ್ನು ವಿತರಣೆಯಲ್ಲಿ ಸೇರಿಸಿ ಮತ್ತು ನಿಯೋಜಿಸಲಾದ ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯ ಬದಲು ಪ್ಯಾಕೇಜ್ ಸ್ಥಳದಿಂದ ಲೋಡ್ ಮಾಡಿ.
ಅಭಿವೃದ್ಧಿ ಕ್ಲೋನ್ನ ಪಕ್ಕದಲ್ಲಿರುವ ಪ್ರಾಕ್ಸಿ ಫೈಲ್ ಕ್ರಾಲರ್ನ ನಿಯೋಜಿಸಲಾದ ಪ್ಯಾಕೇಜ್ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇರುವುದಿಲ್ಲ. ಎರಡು ಕೆಲಸಗಳಿವೆ: ಬೈಟ್ಗಳನ್ನು ವಿತರಣೆಯಲ್ಲಿ ಸೇರಿಸುವುದು, ನಂತರ ಅವುಗಳನ್ನು ಸ್ಥಾಪಿಸಿದ ಪ್ಯಾಕೇಜ್ನಲ್ಲಿ ಹುಡುಕುವುದು.
ತನ್ನ Python ಪ್ಯಾಕೇಜ್ ಒಳಗೆ crawl_app/resources/proxies.txt ಹೊಂದಿರುವ Setuptools ಯೋಜನೆಗೆ, pyproject.toml ನಮೂದು ಅದನ್ನು ಸೇರಿಸಬಹುದು:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
ಅದನ್ನು ಯೋಜನೆಯ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ಯಾಕೇಜ್ ಸಂರಚನೆಯೊಂದಿಗೆ ವಿಲೀನಗೊಳಿಸಿ. ಬೇರೆ build backend ತನ್ನದೇ ಆದ ಡೇಟಾ-ಸೇರ್ಪಡೆ ಇಂಟರ್ಫೇಸ್ ಹೊಂದಿದೆ.
endpoint ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಬಳಸಬಲ್ಲ middleware ಗೆ, Python 3.11+ ಪ್ಯಾಕೇಜ್ ಸಂಪನ್ಮೂಲವನ್ನು ನೇರವಾಗಿ ಓದಬಹುದು:
from importlib.resources import files
text = files('crawl_app').joinpath('resources', 'proxies.txt').read_text(
encoding='utf-8'
)
proxy_urls = [line.strip() for line in text.splitlines() if line.strip()]
ನಿಜವಾದ ಪ್ಯಾಕೇಜ್ ಹೆಸರನ್ನು ಬಳಸಿ ಮತ್ತು ರೀಡರ್ನಲ್ಲಿ ನಿರೀಕ್ಷಿತ URL ಸ್ವರೂಪವನ್ನು ಮೌಲ್ಯೀಕರಿಸಿ. ವಿತರಣೀಯ ಸಾರ್ವಜನಿಕ endpoint ಡೇಟಾಗೆ, middleware ನಿರೀಕ್ಷಿಸುವ ಪ್ರೋಟೋಕಾಲ್ ಮತ್ತು URL ಸ್ವರೂಪದಲ್ಲಿ ಉಚಿತ ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿ ಯಿಂದ ವಿಳಾಸಗಳನ್ನು ಬಳಸಿ. ಹುಡುಕಾಟವು ನಿಯೋಜನೆಯ ಪ್ರಸ್ತುತ ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅವಲಂಬಿಸಿಲ್ಲ.
ತೃತೀಯ ಪಕ್ಷದ PROXY_LIST ಸೆಟ್ಟಿಂಗ್ ಈ ಸ್ಟ್ರಿಂಗ್ಗಳ ಬದಲು ಫೈಲ್ಸಿಸ್ಟಮ್ ಮಾರ್ಗವನ್ನು ಬಯಸಬಹುದು. ಆ ಇಂಟರ್ಫೇಸ್ಗಾಗಿ importlib.resources.as_file ಬಳಸುವಾಗ, middleware ಗೆ ಹೊರತೆಗೆದ ಫೈಲ್ ಅಗತ್ಯವಿರುವವರೆಗೆ ಅದರ ಸಂದರ್ಭವನ್ನು ತೆರೆದಿಡಿ. ಸಂದರ್ಭ ಮುಚ್ಚಿದ ನಂತರ ತಾತ್ಕಾಲಿಕ ಮಾರ್ಗವನ್ನು ಹಿಂತಿರುಗಿಸುವುದು ಸಂಪನ್ಮೂಲವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು.
ರುಜುವಾತುಗಳನ್ನು ಹೊಂದಿರುವ ಉತ್ಪಾದನಾ ಪಟ್ಟಿಗಳನ್ನು ನಿಯೋಜನೆಗೆ ಉದ್ದೇಶಿಸಿದ ರಹಸ್ಯ ಅಥವಾ ಸಂರಚನಾ ಸಂಗ್ರಹದಲ್ಲಿ ಇರಿಸಿ. ಪ್ಯಾಕೇಜ್ ಡೇಟಾ ವಿತರಣೀಯ endpoint ಡೇಟಾಗೆ ಸೂಕ್ತವಾಗಿದೆ, ಕೋಡ್ನೊಂದಿಗೆ ಬಂಡಲ್ ಮಾಡಿದ ಎಲ್ಲವೂ ಖಾಸಗಿಯಾಗಿ ಉಳಿಯುತ್ತದೆ ಎಂಬ ಊಹೆಗಲ್ಲ.