ਇੱਕ ਤੈਨਾਤ ਕੀਤੇ Scrapy ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਲੋਡ ਕਰੋ
Scrapy ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਸਰੋਤ ਨੂੰ ਵੰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਤੈਨਾਤ ਕੀਤੀ ਕਾਰਜ ਡਾਇਰੈਕਟਰੀ ਦੀ ਥਾਂ ਪੈਕੇਜ ਟਿਕਾਣੇ ਤੋਂ ਲੋਡ ਕਰੋ।
ਵਿਕਾਸ ਕਲੋਨ ਦੇ ਕੋਲ ਪਈ ਪ੍ਰੌਕਸੀ ਫਾਈਲ ਕ੍ਰਾਲਰ ਦੇ ਤੈਨਾਤ ਕੀਤੇ ਪੈਕੇਜ ਵਿੱਚ ਆਪਣੇ ਆਪ ਨਹੀਂ ਹੁੰਦੀ। ਦੋ ਕੰਮ ਹਨ: ਬਾਈਟਾਂ ਨੂੰ ਵੰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ, ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਸਥਾਪਿਤ ਪੈਕੇਜ ਵਿੱਚ ਲੱਭਣਾ।
ਆਪਣੇ Python ਪੈਕੇਜ ਦੇ ਅੰਦਰ crawl_app/resources/proxies.txt ਵਾਲੇ Setuptools ਪ੍ਰੋਜੈਕਟ ਲਈ, pyproject.toml ਐਂਟਰੀ ਇਸਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀ ਹੈ:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
ਇਸਨੂੰ ਪ੍ਰੋਜੈਕਟ ਦੀ ਮੌਜੂਦਾ ਪੈਕੇਜ ਸੰਰਚਨਾ ਨਾਲ ਰਲਾਓ। ਵੱਖਰੇ ਬਿਲਡ ਬੈਕਐਂਡ ਦਾ ਆਪਣਾ ਡੇਟਾ-ਸ਼ਾਮਲ ਕਰਨ ਵਾਲਾ ਇੰਟਰਫ਼ੇਸ ਹੁੰਦਾ ਹੈ।
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 ਡੇਟਾ ਲਈ ਢੁਕਵਾਂ ਹੈ, ਇਹ ਮੰਨਣਾ ਨਹੀਂ ਕਿ ਕੋਡ ਨਾਲ ਬੰਡਲ ਕੀਤਾ ਸਭ ਕੁਝ ਨਿੱਜੀ ਰਹਿੰਦਾ ਹੈ।