ਡਾਇਨਾਮਿਕ JavaScript-ਸੰਚਾਲਿਤ ਵੈੱਬਸਾਈਟਾਂ ਲਈ RSS ਫੀਡ ਬਣਾਉਣਾ
RSS ਫੀਡ ਉਹਨਾਂ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਣ ਸਾਧਨ ਹਨ ਜੋ ਉਹਨਾਂ ਦੀਆਂ ਮਨਪਸੰਦ ਵੈਬਸਾਈਟਾਂ ਤੋਂ ਨਵੀਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਨ। ਹਾਲਾਂਕਿ ਬਹੁਤ ਸਾਰੀਆਂ ਸਥਿਰ ਵੈਬਸਾਈਟਾਂ ਆਸਾਨੀ ਨਾਲ RSS ਫੀਡਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦੀਆਂ ਹਨ, JavaScript ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਸਾਈਟਾਂ ਲਈ ਇੱਕ ਵਿਕਸਤ ਕਰਨ ਨਾਲ ਵੱਖਰੀਆਂ ਰੁਕਾਵਟਾਂ ਆਉਂਦੀਆਂ ਹਨ। ਇਹ ਵੈੱਬਸਾਈਟਾਂ ਅਕਸਰ ਪੰਨਾ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਲੋਡ ਕੀਤੀ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ, ਖਾਸ RSS ਤਕਨਾਲੋਜੀਆਂ ਨੂੰ ਬੇਅਸਰ ਪੇਸ਼ ਕਰਦੀਆਂ ਹਨ।
ਆਮ ਟੂਲ, ਜਿਵੇਂ ਕਿ PolitePol ਜਾਂ RSS.app, ਸਥਿਰ ਸਾਈਟਾਂ ਨਾਲ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੇ ਹਨ ਪਰ JavaScript-ਭਾਰੀ ਵੈੱਬਸਾਈਟਾਂ ਨਾਲ ਪੀੜਤ ਹੁੰਦੇ ਹਨ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਲਈ ਉਹਨਾਂ ਪੰਨਿਆਂ ਲਈ ਇੱਕ RSS ਫੀਡ ਪ੍ਰਦਾਨ ਕਰਨਾ ਮੁਸ਼ਕਲ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਲੋਡ ਹੋਣ 'ਤੇ ਤੁਰੰਤ ਆਪਣੀ ਸਾਰੀ ਸਮੱਗਰੀ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕਰਦੇ ਹਨ।
ਇਸ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਕਸਰ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਹੱਲ ਲੱਭਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹਨਾਂ ਵਿੱਚ ਬੇਸਪੋਕ ਸਕ੍ਰਿਪਟਾਂ ਬਣਾਉਣਾ ਜਾਂ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ ਜੋ ਇਸ ਗੱਲ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹਨ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਇੱਕ ਪੰਨੇ 'ਤੇ ਸਮੱਗਰੀ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਕਿਵੇਂ ਪੈਦਾ ਕਰਦੀ ਹੈ। ਇਹਨਾਂ ਤਰੀਕਿਆਂ ਨੂੰ ਸਮਝਣਾ ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ RSS ਫੀਡ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜਿਵੇਂ ਕਿ ਉਦਾਹਰਣ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।
ਗ੍ਰਾਮੀਣਫੋਨ ਦੀ ਵੈੱਬਸਾਈਟ ਦਾ ਪ੍ਰੈੱਸ ਰਿਲੀਜ਼ ਹਿੱਸਾ, ਜੋ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਡਾਟਾ ਲੋਡ ਕਰਦਾ ਹੈ, ਇਹਨਾਂ ਰਣਨੀਤੀਆਂ ਦੀ ਇੱਕ ਸ਼ਾਨਦਾਰ ਉਦਾਹਰਣ ਹੈ। ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਦੇਖਾਂਗੇ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਅਤੇ ਸਮਕਾਲੀ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੀਆਂ ਅਜਿਹੀਆਂ ਵੈਬਸਾਈਟਾਂ ਲਈ ਇੱਕ RSS ਫੀਡ ਕਿਵੇਂ ਤਿਆਰ ਕਰਨਾ ਹੈ।
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
cheerio.load() | ਇਹ ਕਮਾਂਡ Cheerio ਲਾਇਬ੍ਰੇਰੀ ਲਈ ਖਾਸ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ jQuery ਵਾਂਗ ਹੀ HTML ਨੂੰ ਲੋਡ ਅਤੇ ਪਾਰਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਇਹ ਇੱਕ ਵੈਬਸਾਈਟ ਤੋਂ HTML ਟੈਕਸਟ ਨੂੰ ਬਦਲਣ ਅਤੇ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. |
$('.press-release-item').each() | Cheerio ਇੱਕ jQuery-ਵਰਗੇ ਚੋਣਕਾਰ ਦੀ ਵਰਤੋਂ the.press-release-item ਕਲਾਸ ਦੇ ਨਾਲ ਹਰੇਕ ਤੱਤ ਨੂੰ ਲੂਪ ਕਰਨ ਲਈ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕੀਤੀਆਂ ਆਈਟਮਾਂ ਤੋਂ ਸਿਰਲੇਖ ਅਤੇ URL ਵਰਗੀਆਂ ਖਾਸ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰ ਸਕਦੇ ਹੋ। |
feed.item() | ਇਹ ਕਮਾਂਡ RSS ਪੈਕੇਜ ਤੋਂ ਆਉਂਦੀ ਹੈ ਅਤੇ RSS ਫੀਡ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਆਈਟਮ ਜੋੜਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਹਰੇਕ ਆਈਟਮ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਸਿਰਲੇਖ ਅਤੇ url ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹੁੰਦੀਆਂ ਹਨ, ਜੋ ਫੀਡ ਦੀਆਂ ਐਂਟਰੀਆਂ ਬਣਾਉਣ ਲਈ ਲੋੜੀਂਦੀਆਂ ਹੁੰਦੀਆਂ ਹਨ। |
await axios.get() | ਇਹ ਕਮਾਂਡ ਵੈੱਬਸਾਈਟ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ HTTP ਬੇਨਤੀਆਂ ਭੇਜਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। Axios ਲਾਇਬ੍ਰੇਰੀ ਇੱਕ ਵਾਅਦਾ-ਆਧਾਰਿਤ ਵਿਧੀ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਅੱਗੇ ਵਧਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮੱਗਰੀ ਦੇ ਲੋਡ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। |
puppeteer.launch() | ਕਠਪੁਤਲੀ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਇਹ ਕਮਾਂਡ ਹੈੱਡਲੈੱਸ ਬਰਾਊਜ਼ਰ ਲਾਂਚ ਕਰਦੀ ਹੈ। ਇਹ ਡਾਇਨਾਮਿਕ ਸਮਗਰੀ ਦੇ ਨਾਲ JavaScript-ਭਾਰੀ ਵੈਬਸਾਈਟਾਂ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਪਹਿਲੇ ਪੰਨੇ ਦੇ ਰੈਂਡਰ 'ਤੇ ਲੋਡ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। |
page.evaluate() | ਇਹ ਕਠਪੁਤਲੀ ਕਮਾਂਡ ਤੁਹਾਨੂੰ ਸਕ੍ਰੈਪ ਕੀਤੇ ਪੰਨੇ ਦੇ ਸੰਦਰਭ ਵਿੱਚ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇਹ ਇੱਕ ਵੈਬਸਾਈਟ ਤੋਂ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਰੈਂਡਰ ਕੀਤੀ ਸਮੱਗਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਜਿਵੇਂ ਕਿ JavaScript ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀਆਂ ਖਬਰਾਂ ਰੀਲੀਜ਼ਾਂ। |
await page.goto() | ਇਹ ਕਮਾਂਡ ਕਠਪੁਤਲੀ ਦੁਆਰਾ ਇੱਕ ਖਾਸ URL ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਵੈਬਸਾਈਟ ਦੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਕਿਸੇ ਵੀ ਗਤੀਸ਼ੀਲ JavaScript ਸਮੱਗਰੀ ਸਮੇਤ, ਜੋ ਕਿ ਡੇਟਾ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ ਲੋੜੀਂਦਾ ਹੈ. |
Array.from() | ਇਹ JavaScript ਵਿਧੀ ਨੋਡਲਿਸਟਸ (ਜਿਵੇਂ ਕਿ querySelectorAll()) ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀਆਂ ਗਈਆਂ ਐਰੇ ਵਿੱਚ ਬਦਲਦੀ ਹੈ, ਦਸਤਾਵੇਜ਼ ਵਿੱਚੋਂ ਬਹੁਤ ਸਾਰੇ ਤੱਤਾਂ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਵੇਲੇ ਅਸਾਨ ਹੇਰਾਫੇਰੀ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। |
feed.xml() | RSS ਪੈਕੇਜ ਵਿੱਚ ਇੱਕ ਹੋਰ ਕਮਾਂਡ, feed.xml(), ਪੂਰੀ RSS XML ਸਤਰ ਬਣਾਉਂਦੀ ਹੈ। ਇਹ ਅੰਤਮ ਆਉਟਪੁੱਟ ਹੈ ਜਿਸ ਲਈ ਉਪਭੋਗਤਾ ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਭਵਿੱਖ ਦੇ ਅਪਡੇਟਾਂ ਲਈ ਗਾਹਕ ਬਣਨਗੇ। |
JavaScript RSS ਫੀਡ ਸਕ੍ਰਿਪਟਾਂ ਦੇ ਕੰਮ ਨੂੰ ਸਮਝਣਾ
ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਇੱਕ JavaScript-ਭਾਰੀ ਵੈੱਬਸਾਈਟ ਤੋਂ ਸਮੱਗਰੀ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ Node.js, Cheerio, ਅਤੇ RSS ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇੱਥੇ ਮੁੱਖ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਬਹੁਤ ਸਾਰੀਆਂ ਆਧੁਨਿਕ ਵੈਬਸਾਈਟਾਂ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਦੀਆਂ ਹਨ, ਜਿਸ ਨਾਲ ਮਿਆਰੀ ਸਕ੍ਰੈਪਿੰਗ ਤਰੀਕਿਆਂ ਲਈ ਹਰ ਚੀਜ਼ ਨੂੰ ਫੜਨਾ ਮੁਸ਼ਕਲ ਹੋ ਜਾਂਦਾ ਹੈ। ਟੀਚੇ ਦੀ ਵੈੱਬਸਾਈਟ ਦੇ ਕੱਚੇ HTML ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸਕ੍ਰਿਪਟ ਪਹਿਲਾਂ Axios ਉੱਤੇ ਇੱਕ HTTP ਬੇਨਤੀ ਭੇਜਦੀ ਹੈ। HTML ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ, Cheerio ਨੂੰ jQuery ਦੇ ਸਮਾਨ ਤਰੀਕੇ ਨਾਲ ਪਾਰਸ ਅਤੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਸਾਨੂੰ ਪੰਨੇ ਦੇ ਖਾਸ ਭਾਗਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਅਤੇ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਪ੍ਰੈਸ ਰਿਲੀਜ਼, ਜੋ ਕਿ ਇੱਕ RSS ਫੀਡ ਬਣਾਉਣ ਲਈ ਲੋੜੀਂਦੇ ਹਨ।
ਇੱਕ ਵਾਰ ਸਮੱਗਰੀ ਨੂੰ ਸਕ੍ਰੈਪ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸ ਨੂੰ ਇੱਕ RSS ਫੀਡ-ਅਨੁਕੂਲ ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੈ. ਚੈਰੀਓ ਫੰਕਸ਼ਨ ਖਾਸ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ ਕਿਉਂਕਿ ਇਹ ਹਰੇਕ ਪ੍ਰੈਸ ਰਿਲੀਜ਼ 'ਤੇ ਚੱਲਦਾ ਹੈ ਅਤੇ ਸਿਰਲੇਖ ਅਤੇ URL ਵਰਗੇ ਮਹੱਤਵਪੂਰਨ ਵੇਰਵਿਆਂ ਨੂੰ ਕੱਢਦਾ ਹੈ। ਸਕ੍ਰੈਪਡ ਡੇਟਾ ਨੂੰ ਫਿਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ RSS ਫੀਡ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ RSS ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਵਿਧੀ। ਇਸ ਸਕ੍ਰਿਪਟ ਦਾ ਅੰਤਮ ਪੜਾਅ ਹੈ ਪੂਰਾ ਆਰਐਸਐਸ ਐਕਸਐਮਐਲ ਲਾਗੂ ਕਰਕੇ ਤਿਆਰ ਕਰਨਾ . ਇਹ XML ਉਹ ਹੈ ਜਿਸਦੀ ਵਰਤੋਂ ਗਾਹਕ ਨਵੀਂ ਪ੍ਰੈਸ ਰਿਲੀਜ਼ਾਂ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਲਈ ਕਰ ਸਕਦੇ ਹਨ। ਇਹ ਰਣਨੀਤੀ ਵੈੱਬਸਾਈਟਾਂ ਲਈ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀ ਹੈ ਜਦੋਂ ਸਮੱਗਰੀ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਪਰ ਢਾਂਚਾ ਸਥਿਰ ਅਤੇ ਅਨੁਮਾਨਯੋਗ ਹੁੰਦਾ ਹੈ।
ਦੂਜੀ ਪਹੁੰਚ ਕਠਪੁਤਲੀ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਇੱਕ ਸਿਰ ਰਹਿਤ ਬ੍ਰਾਊਜ਼ਰ ਜੋ JavaScript-ਭਾਰੀ ਵੈਬਪੇਜਾਂ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਵਿੱਚ ਮਾਹਰ ਹੈ। ਕਠਪੁਤਲੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਸਹੀ ਬ੍ਰਾਊਜ਼ਰ ਸੈਸ਼ਨ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇਹ ਸਮੱਗਰੀ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ JavaScript ਦੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ। ਇਹ ਗ੍ਰਾਮੀਣਫੋਨ ਪ੍ਰੈਸ ਰਿਲੀਜ਼ ਖੇਤਰ ਵਰਗੇ ਪੰਨਿਆਂ ਲਈ ਖਾਸ ਤੌਰ 'ਤੇ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਜਿੱਥੇ ਸਮੱਗਰੀ ਪਹਿਲੇ HTML ਪੰਨੇ ਦੇ ਲੋਡ ਤੋਂ ਬਾਅਦ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਤਿਆਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸਕ੍ਰਿਪਟ ਸ਼ੁਰੂ ਵਿੱਚ ਇੱਕ ਕਠਪੁਤਲੀ ਬਰਾਊਜ਼ਰ ਉਦਾਹਰਨ ਖੋਲ੍ਹਦੀ ਹੈ ਅਤੇ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਸ਼ਾਨਾ URL ਤੇ ਨੈਵੀਗੇਟ ਕਰਦੀ ਹੈ ਢੰਗ. ਪੰਨਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਇਸਦਾ ਮੁਲਾਂਕਣ ਕਰਦੀ ਹੈ ਅਤੇ ਆਮ DOM ਹੇਰਾਫੇਰੀ ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਢੁਕਵੀਂ ਸਮੱਗਰੀ ਨੂੰ ਖਿੱਚਦੀ ਹੈ ਜਿਵੇਂ ਕਿ .
ਕਠਪੁਤਲੀ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਅਤੇ ਗਤੀਸ਼ੀਲ ਵੈਬ ਪੇਜਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵਿੱਚ ਚੀਰਿਓ ਵਰਗੇ ਬੁਨਿਆਦੀ ਸਕ੍ਰੈਪਿੰਗ ਟੂਲਸ ਨੂੰ ਪਛਾੜਦਾ ਹੈ। ਸੰਬੰਧਿਤ ਡੇਟਾ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਦੇ ਸਮਾਨ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ, ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ RSS ਫੀਡ ਵਿੱਚ ਫਾਰਮੈਟ ਕਰਦਾ ਹੈ. ਇਹ ਵਿਧੀ ਉਹਨਾਂ ਵੈਬਸਾਈਟਾਂ ਲਈ ਸਭ ਤੋਂ ਅਨੁਕੂਲ ਹੈ ਜੋ ਸਮੱਗਰੀ ਨੂੰ ਅਸਿੰਕਰੋਨਸ ਤੌਰ 'ਤੇ ਲੋਡ ਕਰਦੀਆਂ ਹਨ ਜਾਂ ਵਧੇਰੇ ਉੱਨਤ JavaScript ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਇਸ ਨੂੰ ਆਧੁਨਿਕ ਵੈਬਸਾਈਟਾਂ ਤੋਂ RSS ਫੀਡ ਬਣਾਉਣ ਲਈ ਇੱਕ ਬਹੁਮੁਖੀ ਵਿਕਲਪ ਦਿੰਦੀਆਂ ਹਨ। ਦੋਵੇਂ ਵਿਕਲਪ, ਚਾਹੇ Cheerio ਜਾਂ Puppeteer ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕੀਤੀ ਸਮੱਗਰੀ ਉਪਭੋਗਤਾ ਦੀ ਖਪਤ ਲਈ ਇੱਕ ਸਹੀ RSS ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲ ਗਈ ਹੈ।
Node.js ਅਤੇ Cheerio ਨਾਲ JavaScript-ਭਾਰੀ ਵੈੱਬਸਾਈਟ ਲਈ ਇੱਕ RSS ਫੀਡ ਬਣਾਉਣਾ
ਇਹ ਵਿਧੀ JavaScript ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਵੈਬਸਾਈਟ ਤੋਂ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਅਤੇ ਇੱਕ RSS ਫੀਡ ਬਣਾਉਣ ਲਈ Node.js ਅਤੇ Cheerio ਮੋਡੀਊਲ ਨੂੰ ਨਿਯੁਕਤ ਕਰਦੀ ਹੈ।
const axios = require('axios');
const cheerio = require('cheerio');
const RSS = require('rss');
async function fetchPressReleases() {
try {
const { data } = await axios.get('https://www.grameenphone.com/about/media-center/press-release');
const $ = cheerio.load(data);
let releases = [];
$('.press-release-item').each((i, el) => {
const title = $(el).find('h3').text();
const url = $(el).find('a').attr('href');
releases.push({ title, url });
});
return releases;
} catch (error) {
console.error('Error fetching press releases:', error);
}
}
async function generateRSS() {
const feed = new RSS({ title: 'Press Releases', site_url: 'https://www.grameenphone.com' });
const releases = await fetchPressReleases();
releases.forEach(release => {
feed.item({ title: release.title, url: release.url });
});
console.log(feed.xml());
}
generateRSS();
ਕਠਪੁਤਲੀ ਦੇ ਨਾਲ ਇੱਕ ਸਿਰ ਰਹਿਤ ਬਰਾਊਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ RSS ਫੀਡ ਬਣਾਉਣਾ
ਇਹ ਵਿਧੀ JavaScript-ਭਾਰੀ ਵੈੱਬਸਾਈਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਅਤੇ RSS ਫੀਡਾਂ ਲਈ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ Puppeteer, ਇੱਕ ਸਿਰ ਰਹਿਤ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।
const puppeteer = require('puppeteer');
const RSS = require('rss');
async function fetchDynamicContent() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.grameenphone.com/about/media-center/press-release');
const releases = await page.evaluate(() => {
return Array.from(document.querySelectorAll('.press-release-item')).map(el => ({
title: el.querySelector('h3').innerText,
url: el.querySelector('a').href
}));
});
await browser.close();
return releases;
}
async function generateRSS() {
const feed = new RSS({ title: 'Dynamic Press Releases', site_url: 'https://www.grameenphone.com' });
const releases = await fetchDynamicContent();
releases.forEach(release => {
feed.item({ title: release.title, url: release.url });
});
console.log(feed.xml());
}
generateRSS();
JavaScript-ਭਾਰੀ ਵੈੱਬਸਾਈਟਾਂ ਲਈ ਡਾਇਨਾਮਿਕ RSS ਫੀਡ ਬਣਾਉਣਾ
RSS ਫੀਡ ਲਈ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਸਮੱਗਰੀ ਨੂੰ ਕੈਪਚਰ ਕਰਨਾ JavaScript-ਸੰਚਾਲਿਤ ਵੈੱਬਸਾਈਟਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਕਦੇ-ਕਦਾਈਂ ਅਣਗਹਿਲੀ ਕੀਤੀ ਮੁਸ਼ਕਲ ਹੁੰਦੀ ਹੈ। ਸਥਿਰ ਪੰਨਿਆਂ ਦੇ ਉਲਟ, ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਵੈਬਸਾਈਟਾਂ ਸ਼ੁਰੂਆਤੀ ਪੰਨੇ ਦੀ ਬੇਨਤੀ ਤੋਂ ਬਾਅਦ ਸਮੱਗਰੀ ਦੇ ਭਾਗਾਂ ਨੂੰ ਲੋਡ ਕਰਦੀਆਂ ਹਨ, ਖਾਸ ਸਕ੍ਰੈਪਿੰਗ ਪਹੁੰਚਾਂ ਨੂੰ ਬੇਕਾਰ ਪੇਸ਼ ਕਰਦੀਆਂ ਹਨ. ਜਿਵੇਂ ਕਿ ਵੈਬਸਾਈਟਾਂ ਨਵੇਂ ਫਰੇਮਵਰਕ ਜਿਵੇਂ ਕਿ React, Angular, ਅਤੇ Vue.js ਦੇ ਨਾਲ ਵਧੇਰੇ ਪਰਸਪਰ ਪ੍ਰਭਾਵਸ਼ੀਲ ਹੁੰਦੀਆਂ ਹਨ, ਡਿਵੈਲਪਰ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਉਤਪਾਦਨ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਨਵੇਂ ਹੱਲ ਚਾਹੁੰਦੇ ਹਨ।
ਇਹਨਾਂ ਸਾਈਟਾਂ ਲਈ ਇੱਕ RSS ਫੀਡ ਤਿਆਰ ਕਰਨ ਲਈ, ਡਿਵੈਲਪਰ ਪਪੀਟੀਅਰ ਦੇ ਨਾਲ ਹੈੱਡਲੈੱਸ ਸਰਫਿੰਗ ਵਰਗੇ ਹੱਲਾਂ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰ ਸਕਦੇ ਹਨ, ਜੋ ਇੱਕ ਸੱਚੇ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਦੀ ਨਕਲ ਕਰਦਾ ਹੈ। ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਹੈ ਕਿ ਜੇਕਰ ਉਪਲਬਧ ਹੋਵੇ ਤਾਂ ਵੈੱਬਸਾਈਟ ਦੁਆਰਾ ਦਿੱਤੇ APIs ਦੀ ਵਰਤੋਂ ਕਰਨਾ। ਬਹੁਤ ਸਾਰੀਆਂ ਮੌਜੂਦਾ ਵੈੱਬਸਾਈਟਾਂ JSON ਜਾਂ RESTful API ਦਾ ਪਰਦਾਫਾਸ਼ ਕਰਦੀਆਂ ਹਨ ਜੋ ਸਾਹਮਣੇ ਵਾਲੇ ਸਿਰੇ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਡੇਟਾ ਨੂੰ ਵਾਪਸ ਕਰਦੀਆਂ ਹਨ। ਇਹਨਾਂ APIs ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਪੰਨਾ ਕਿਵੇਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ ਇਸ ਬਾਰੇ ਚਿੰਤਾ ਕੀਤੇ ਬਿਨਾਂ ਤੁਰੰਤ ਢਾਂਚਾਗਤ ਡੇਟਾ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹੋ। API ਵਿੱਚ ਵੈਬ ਸਕ੍ਰੈਪਿੰਗ ਨਾਲੋਂ ਵਧੇਰੇ ਸਥਿਰ ਹੋਣ ਦਾ ਫਾਇਦਾ ਵੀ ਹੁੰਦਾ ਹੈ, ਜੋ ਕਿ ਟੁੱਟ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਵੈਬਸਾਈਟ ਬਣਤਰ ਬਦਲਦੀ ਹੈ.
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਰਵਰ-ਸਾਈਡ ਰੈਂਡਰਿੰਗ (SSR) ਨਾਲ API ਵਰਤੋਂ ਨੂੰ ਜੋੜਨਾ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ RSS ਉਤਪਾਦਨ ਵਿਧੀ ਹੋ ਸਕਦੀ ਹੈ। SSR ਫਰੇਮਵਰਕ, ਜਿਵੇਂ ਕਿ Next.js, ਸਰਵਰ 'ਤੇ ਪੰਨਿਆਂ ਨੂੰ ਪ੍ਰੀ-ਰੈਂਡਰ ਕਰ ਸਕਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੁਕੰਮਲ ਹੋਏ HTML ਨੂੰ ਕੈਪਚਰ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਸ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕੀਤੇ ਤੱਤ ਸ਼ਾਮਲ ਹਨ। ਇਸ HTML ਨੂੰ ਫਿਰ ਇੱਕ RSS ਫੀਡ ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਹੱਲ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਲਚਕਤਾ ਅਤੇ ਮਾਪਯੋਗਤਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੇ ਹਨ ਜਦੋਂ ਕਦੇ-ਬਦਲ ਰਹੇ JavaScript ਫਰੇਮਵਰਕ ਅਤੇ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਲੋਡਿੰਗ ਐਲਗੋਰਿਦਮ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ।
- JavaScript-ਭਾਰੀ ਵੈਬਸਾਈਟਾਂ ਤੋਂ ਸਮੱਗਰੀ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਕੀ ਹੈ?
- ਆਦਰਸ਼ ਤਕਨੀਕ ਹੈੱਡਲੈੱਸ ਬਰਾਊਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ , ਜੋ ਸਮੱਗਰੀ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ JavaScript ਰੈਂਡਰ ਕਰ ਸਕਦਾ ਹੈ।
- ਕੀ ਮੈਂ ਗਤੀਸ਼ੀਲ ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ ਚੀਰੀਓ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਚੈਰੀਓ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਲਈ ਆਦਰਸ਼ ਨਹੀਂ ਹੈ; ਹਾਲਾਂਕਿ, ਇਸਨੂੰ ਟੂਲਸ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਪਹਿਲਾਂ ਸਥਿਰ HTML ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ।
- RSS ਪੀੜ੍ਹੀ ਲਈ API ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਕੀ ਫਾਇਦੇ ਹਨ?
- APIs ਸਕ੍ਰੈਪਿੰਗ ਦੀ ਜ਼ਰੂਰਤ ਨੂੰ ਖਤਮ ਕਰਦੇ ਹੋਏ, ਸਰੋਤ ਤੋਂ ਸਿੱਧਾ ਢਾਂਚਾਗਤ ਡੇਟਾ ਵਾਪਸ ਕਰਦੇ ਹਨ। APIs ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ, ਕੋਈ ਵੀ ਵਰਤੋ ਜਾਂ .
- ਕਠਪੁਤਲੀ JavaScript-ਰੈਂਡਰ ਕੀਤੀ ਸਮੱਗਰੀ ਨਾਲ ਕਿਵੇਂ ਮਦਦ ਕਰਦੀ ਹੈ?
- ਕਠਪੁਤਲੀ ਇੱਕ ਵੈਬਪੇਜ ਲੋਡ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ JavaScript-ਰੈਂਡਰ ਕੀਤੇ ਹਿੱਸੇ ਸ਼ਾਮਲ ਹਨ, ਅਤੇ ਇਸ ਨਾਲ ਡੇਟਾ ਐਕਸਟਰੈਕਟ ਕਰ ਸਕਦੇ ਹਨ .
- ਸਰਵਰ-ਸਾਈਡ ਰੈਂਡਰਿੰਗ (SSR) ਕੀ ਹੈ ਅਤੇ ਇਹ RSS ਫੀਡਸ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ?
- SSR, ਜਿਵੇਂ ਕਿ ਫਰੇਮਵਰਕ ਦੁਆਰਾ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ ਜਿਵੇਂ ਕਿ Next.js, ਸਰਵਰ 'ਤੇ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਨੂੰ ਪ੍ਰੀ-ਰੈਂਡਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ RSS ਫੀਡਾਂ ਲਈ ਸਕ੍ਰੈਪ ਜਾਂ ਕੈਪਚਰ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।
ਉਹਨਾਂ ਵੈਬਸਾਈਟਾਂ ਲਈ ਇੱਕ RSS ਫੀਡ ਬਣਾਉਣਾ ਜੋ JavaScript ਨਾਲ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਦੇ ਹਨ ਧਿਆਨ ਨਾਲ ਵਿਚਾਰ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਡਿਵੈਲਪਰ ਗੁੰਝਲਦਾਰ ਸਾਈਟਾਂ ਤੋਂ ਉਪਯੋਗੀ RSS ਫੀਡਾਂ ਨੂੰ ਪ੍ਰਭਾਵੀ ਢੰਗ ਨਾਲ ਬਣਾ ਸਕਦੇ ਹਨ ਜਿਵੇਂ ਕਿ ਪੂਰੇ ਪੇਜ ਰੈਂਡਰਿੰਗ ਲਈ ਪਪੀਟੀਅਰ ਅਤੇ HTML ਪਾਰਸਿੰਗ ਲਈ ਚੈਰੀਓ।
ਇਹ ਰਣਨੀਤੀਆਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਪ੍ਰਦਰਸ਼ਨ ਅਤੇ ਸ਼ੁੱਧਤਾ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਸਮੱਗਰੀ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਸਕ੍ਰੈਪ ਕੀਤਾ ਗਿਆ ਹੈ। ਨਿਸ਼ਾਨਾ ਵੈੱਬਸਾਈਟ ਦੇ ਢਾਂਚੇ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਢੁਕਵੀਂ ਤਕਨਾਲੋਜੀ ਦੀ ਚੋਣ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਕੀ ਸਕ੍ਰੈਪਿੰਗ ਜਾਂ APIs ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਇਹ ਰਣਨੀਤੀਆਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਅਤੇ ਆਧੁਨਿਕ ਵੈਬ ਵਿਕਾਸ ਲਈ ਅਨੁਕੂਲ ਹਨ.
- JavaScript-ਭਾਰੀ ਵੈਬਸਾਈਟਾਂ ਨੂੰ ਕਿਵੇਂ ਸਕ੍ਰੈਪ ਕਰਨਾ ਹੈ ਇਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕੀਤੀ ਗਈ ਸੀ ਕਠਪੁਤਲੀ ਦਸਤਾਵੇਜ਼ , ਗਤੀਸ਼ੀਲ ਵੈੱਬ ਸਮੱਗਰੀ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ ਜ਼ਰੂਰੀ ਸੰਦ ਹੈ।
- ਸਥਿਰ HTML ਨੂੰ ਪਾਰਸ ਕਰਨ ਲਈ Cheerio ਦੀ ਵਰਤੋਂ ਕਰਨ ਬਾਰੇ ਵੇਰਵੇ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਸਨ Cheerio.js ਅਧਿਕਾਰਤ ਵੈੱਬਸਾਈਟ , ਜੋ ਸਰਵਰ-ਸਾਈਡ DOM ਹੇਰਾਫੇਰੀ ਲਈ jQuery-ਵਰਗੇ ਸੰਟੈਕਸ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
- ਬੈਕਐਂਡ ਸਕ੍ਰਿਪਟਾਂ ਬਣਾਉਣ ਲਈ Node.js ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਆਏ ਹਨ Node.js ਦਸਤਾਵੇਜ਼ , ਜੋ ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਗਰਾਮਿੰਗ 'ਤੇ ਵਿਆਪਕ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
- RSS ਫੀਡ ਬਣਾਉਣ ਅਤੇ RSS ਪੈਕੇਜ ਦੀ ਵਰਤੋਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ ਗਈ ਸੀ RSS NPM ਪੈਕੇਜ , ਜੋ ਕਿ RSS ਫੀਡਾਂ ਨੂੰ ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਤੌਰ 'ਤੇ ਬਣਾਉਣ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
- JavaScript ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਸਾਈਟ ਤੋਂ ਪ੍ਰੈਸ ਰੀਲੀਜ਼ਾਂ ਨੂੰ ਸਕ੍ਰੈਪ ਕਰਨ ਦੀ ਉਦਾਹਰਣ ਇਸ 'ਤੇ ਉਪਲਬਧ ਸਮੱਗਰੀ ਤੋਂ ਪ੍ਰੇਰਿਤ ਸੀ ਗ੍ਰਾਮੀਣਫੋਨ ਦਾ ਮੀਡੀਆ ਸੈਂਟਰ .